اكسبيرتى الاول - شخبطة على الحيط
السلام عليكم ورحمة الله وبركاته
لقد بدأت فى تعلم لغة البرمجة منذ فترة حالما بأن أكون مبرمج محترف ومستعينا بالله ثم بخبرات الاساتذة الموجودين هنا بالمنتدى
واول اكسبيرت احببت ان اصنعه وهوه لمؤشر الايشيموكو الشهير
وكانت الشروط للبيع ان يكون السعر اسفل السحابة و السعر اسفل التنكن والسعر اسفل الكيجن وكتبتهم هكذا
كود PHP:
if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>Senkoua){
واردت ان اكتبهم بطريقة اخرى ولكن لم اعرف وهى ان يكون السعر اسفل كلا من (التنكن والكيجن والاسبان بى والاسبان ا)
وكانت شروط الشراء العكس فقمت بتغير علامة < بعلامة >
المهم
واقتبست عدة جمل من مؤشر الباربوليك الخاص بمستر دولار لكى لا يفتح غير عقد واحد
وعند تجربتى للاكسبيرت حدثت مشكلة
وهى ان الاكسبيرت ينفذ عمليات شراء تحت السحابة
فأرجو من الخبراء افادتى بالحل
وهذا هو كود الاكسبيرت وقد سميته Ambush
كود PHP:
//+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
//+++++++++++++++++++++++++++++++++++++++++//
double SL,TP;
/////////// BUY ////////////////
if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
وشكرا لكم جميعا وارجوكم انتشلونى من بحر الظلمات :asvc:
رد:اكسبيرتى الاول - شخبطة على الحيط
اقتباس:
المشاركة الأصلية كتبت بواسطة ساهر الفوركس
عندي فكرة صديقي ان شاء الله تفيدك
نضع متغير مثلا x ومتغير اخر y
سميه انت مثل ما تحب
x نخزن فيه الاكبر بين span a و span b
يصبح x يمثل الحد العلو للسحابة
y نخزن فيه اقل قيمة بين span a و span b
يصبح y يمثل اقل الحد السفلي للسحابة
وعندها قارن فقط افتتاح السعر ب x في حالة الشراء مع تحقق شروطك الاخر
وافتتاح السعر ب y في حالة البيع مع تحقق الشروط الاخري
لو تريد مساعدة في الفكرة انا جاهز
شكرا اخى لردك ولا مشكله فى الافكار
المشكلة فى ايجاد المعادلات الصحيحة
رد:اكسبيرتى الاول - شخبطة على الحيط
كود PHP:
//+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
if(Senkoua>Senkoub)
{
x=Senkoua;
y=Senkoub;
}
else
{
x=Senkoub;
y=Senkoua;
}
//+++++++++++++++++++++++++++++++++++++++++//
double SL,TP;
/////////// BUY ////////////////
if (Open[0]>Tenkan&&Open[0]>Kijun&&Open[0]>x){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<y){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
تفضل التعديل
الشراء فوق السحابة فقط
والبيع تحت السحابة فقط
رد:اكسبيرتى الاول - شخبطة على الحيط
قمت بعمل تعديل بسيط وهو استبدال امر الافتتاح بالاغلاق وعمل نتائج رائعة بالنسبة لى كأول اكسبيرت
وهذا هوه الكود المعدل
كود PHP:
//+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, AhmeD EssaM |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
double SL,TP;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,0);
Kijun=iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,0);
Senkoua=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,0);
Senkoub=iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,0);
if(Senkoua>Senkoub)
{
x=Senkoua;
y=Senkoub;
}
else
{
x=Senkoub;
y=Senkoua;
}
/////////// BUY ////////////////
if (Close[0]>Tenkan&&Close[0]>Kijun&&Close[0]>x){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Close[0]<Tenkan&&Close[0]<Kijun&&Close[0]<y){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
تبقى اضافة كود للسماح
وهو الكود الذى لا يسمح للاكسبيرت ان يدخل صفقات تبعد عن السحابة والخطوط مثلا بمسافة كبيرة
وسوف ابحث عنه الان واقوم بإضافته بإذن الله
رد:اكسبيرتى الاول - شخبطة على الحيط
ده الكود شبه النهائى للاكسبيرت وهو يعمل على اى فريم ويشترى من فوق الاربع خطوط (التنكن والكيجن والاسبان اوب) ويبيع تحتهم
والهدف 50 والتارجت 50 ويمكن تعديلهم
كود PHP:
//+------------------------------------------------------------------+
//| Ambush.mq4 |
//| Copyright 2012, AhmeD EssaM |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, AhmeD EssaM"
#property link "[email protected]"
//--- input parameters
extern string moneymanagement="Money Management";
extern double Lots=0.01;
extern int StopLoss=50;
extern int TakeProfit=50;
extern int MagicNumber=58;
double x,y;
double SL,TP;
extern string entrylogics="Entry Logics";
extern int tenkansen=9;
extern int kijunsen=26;
extern int senkospan=52;
extern int shift=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double point;
int digits;
int init()
{
if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
int orderstotal(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
Comment("Ambush Ichi"+"\n"+"AhmeD EssaM");
//++++++++++++++ my first ++++++++++++++++++//
double Tenkan,Kijun,Senkoua,Senkoub;
Tenkan=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_TENKANSEN,shift);
Kijun=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_KIJUNSEN,shift);
Senkoua=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift);
Senkoub=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift);
/////////// BUY ////////////////
if (Close[0]>Tenkan&&Close[0]>Kijun&&Close[0]>Senkoub&&Close[0]>Senkoua){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"ambush",MagicNumber,0,Blue);
}
}
/////////// SELL ////////////////
if (Open[0]<Tenkan&&Open[0]<Kijun&&Open[0]<Senkoua&&Open[0]<Senkoub){
if(orderstotal()<1){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"ambush",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
وجارى تعديل الاستوب ليكون مستوى الاسبان بى بدلا من ستوب ثابت