رد: دورة صناعة الاكسبيرتات
الاستاذ الفاضل وضاح عطار.
اشكرك على الموضوع القيم.
لقد كنت في الماضي ابحث عن من يعمل لي مؤشر يقوم بحفظ قيمة الصفقة open position price في متغير ثم اقوم بعد ذلك باجراء عدة معادلات على هذا المتغير. واتضح فيما بعد بان هذا العمل لا يتم عن طريق صنع مؤشر بل عن طريق الاكسبيرت.
وما اريده هو التالي:
1- متغير يحتفظ بسعر فتح الصفقة.
2- نقوم باجراء معادلات حسابية على هذا المتغير. فعلى سبيل المثال نختار فترة زمنية (frame time) ساعة واحدة، ويكون كالتالي:
اذا
اعلى سعر في الساعة - قيمة المتغير >= 0.0020
اغلق الصفقة.
وشكرا( انا هذا الموضوع الذي طرحته اخي وضاح العطار شيق للغاية وسوف اكون في غاية السعادة اذا اريتنا الكود لعمل ذلك ولك كل الحب والشكر).
رد: دورة صناعة الاكسبيرتات
اشكر الاخوة القائمين على هذا الموضوع ( الأخ مستر دولار - الأخ وضاح العطار وجميع الاخوة هنا )
اخوتي هذا اول سؤال لي هنا وانا مبتدأ بالنسبة لموضوع البرمجة
حاولت برمجة اكسبيرت بسيط جدا واحتاج لسطر برمجي لأضيفه عليه
الاكسبيرت هو اكسبيرت عادي ويقوم على تقاطع خطوط الموفيج .. ويقوم بالدخول بيع أو شراء عند التقاطع
هل من الممكن ان اعرف ما هو السطر البرمجي اللذي يجب اضافته أو التعديل اللذي يجعل الاكسبيرت يقوم بالبيع والشراء عند عودة اي شمعة لملامسة خط موفينج 50 وليس الدخول عند التقاطع كما هو حاصل الآن
وهاهو النص البرمجي للاكسبيرت
كود PHP:
//+------------------------------------------------------------------+
//| malaz.mq4 |
//| Copyright © 2010, malaz |
//|
//+------------------------------------------------------------------+
#property copyright "malaz"
#property link "[email protected]"
extern string mm_parameters = "------------- Money Management";
extern double Lots = 1;
extern string s5="--------------- order Management";
extern int StopLoss=100;
extern int TakeProfit=100;
extern int MagicNumber=2533;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//////////////////////////////////////////////////
double ma1,ma2,ma11,ma22;
ma1=iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2);
ma11=iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);
ma2=iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,2);
ma22=iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,1);
////////////////////////////////////////////////////
double SL,TP;
////////////////////////////////
if (ma1<ma2&& ma11>ma22){
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,"malaz",MagicNumber,0,Blue);
PlaySound("Alert.wav");
}
/////////////////////
if (ma1>ma2&&ma11<ma22 ){
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,"malaz",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
1 مرفق
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة Sniper man
اشكر الاخوة القائمين على هذا الموضوع ( الأخ مستر دولار - الأخ وضاح العطار وجميع الاخوة هنا )
اخوتي هذا اول سؤال لي هنا وانا مبتدأ بالنسبة لموضوع البرمجة
حاولت برمجة اكسبيرت بسيط جدا واحتاج لسطر برمجي لأضيفه عليه
الاكسبيرت هو اكسبيرت عادي ويقوم على تقاطع خطوط الموفيج .. ويقوم بالدخول بيع أو شراء عند التقاطع
هل من الممكن ان اعرف ما هو السطر البرمجي اللذي يجب اضافته أو التعديل اللذي يجعل الاكسبيرت يقوم بالبيع والشراء عند عودة اي شمعة لملامسة خط موفينج 50 وليس الدخول عند التقاطع كما هو حاصل الآن
وهاهو النص البرمجي للاكسبيرت
كود PHP:
//+------------------------------------------------------------------+
//| malaz.mq4 |
//| Copyright © 2010, malaz |
//|
//+------------------------------------------------------------------+
#property copyright "malaz"
#property link "[email protected]"
extern string mm_parameters = "------------- Money Management";
extern double Lots = 1;
extern string s5="--------------- order Management";
extern int StopLoss=100;
extern int TakeProfit=100;
extern int MagicNumber=2533;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//////////////////////////////////////////////////
double ma1,ma2,ma11,ma22;
ma1=iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2);
ma11=iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,1);
ma2=iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,2);
ma22=iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,1);
////////////////////////////////////////////////////
double SL,TP;
////////////////////////////////
if (ma1<ma2&& ma11>ma22){
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,"malaz",MagicNumber,0,Blue);
PlaySound("Alert.wav");
}
/////////////////////
if (ma1>ma2&&ma11<ma22 ){
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,"malaz",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
تفضل هذا الكود على سبيل المثال
كود PHP:
Open[0]>ma1&&Close[0]<=ma1+Distance*point&&Close[0]>=ma1
لو لاحظت الشروط السابقه سوف تجد إذا كان الإفتتاح أكبر من ma1 وهو المتغير الذي أعطيناه قيمة الموفينج ثم إذا أصبح السعر الحالي أقل من ma1+Distance*point والمتغير Distance هو عدد نقاط معينه قمنا بتحديده في خصائص الإكسبرت بحيث إذا كان السعر لامس الموفينج على بعد عدد معين من النقاط فإننا نعتبرها ملامسه وإرتداد
في هذه الحاله نقوم بفتح صفقه شراء
وستكون الشروط بالعكس في حالة البيع
مرفق أيضا إكسبرت كنا قد برمجناه سابقا لنفس الفكره التي تتكلم عنها وهي الإرتداد من موفينج 50 راجع كود الإكسبرت وشروط الدخول
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
تفضل هذا الكود على سبيل المثال
كود PHP:
Open[0]>ma1&&Close[0]<=ma1+Distance*point&&Close[0]>=ma1
لو لاحظت الشروط السابقه سوف تجد إذا كان الإفتتاح أكبر من ma1 وهو المتغير الذي أعطيناه قيمة الموفينج ثم إذا أصبح السعر الحالي أقل من ma1+Distance*point والمتغير Distance هو عدد نقاط معينه قمنا بتحديده في خصائص الإكسبرت بحيث إذا كان السعر لامس الموفينج على بعد عدد معين من النقاط فإننا نعتبرها ملامسه وإرتداد
في هذه الحاله نقوم بفتح صفقه شراء
وستكون الشروط بالعكس في حالة البيع
مرفق أيضا إكسبرت كنا قد برمجناه سابقا لنفس الفكره التي تتكلم عنها وهي الإرتداد من موفينج 50 راجع كود الإكسبرت وشروط الدخول
اشكرك اخي مستر دولار على المساعدة
لكني سبق وتصفحت الاكسبيرت المرفق ورأيت انه يختلف قليلا عن الاكسبيرت اللذي وضعته لك ...فالاكسبيرت اللذي ارفقته انت اكثر شروطا وتفاصيل والاكسبيرت اللذي صممته لك لايتجاوز في بساطته شرط التقاطع والملامسة اي انه بسيط جدا لشخص مثلك ولكنه كافي مبدأيا بالنسبة لي
لكن سؤالي اللذي ابحث عن اجابة له الآن هو كيف اعرف distance
هل من الممكن ان تقوم بالتعديل على الاكسبيرت اللذي وضعته لك بأن تضيف السطر البرمجي للشرط وتعرف لي الديستينس في خصائص الاكسبيرت
علما بأني حاولت التعريف لها بالعبارة التالية
extern double Distance = 0,0020*point
ولكنه بعد فحصه يعطيني البرنامج بأنه هناك خطأ والعبارة التي يعطيني اياها هي
variable expected
مع اشارة خطأ حمراء صغيرة بجانبها
فما الحل برأيك ؟
واعتذر لهذا السؤال الغبي ولكن بيني وبين معرفة الطريقة شعرة واريدك ان تصلني اليها ولك كل الاحترام والتقدير والشكر على المساعدة
الله يجزاك الخير ويجعلها في ميزان حسناتك يوم القيامة
رد: دورة صناعة الاكسبيرتات
هل بالامكان توضيح معنى العناوين البرمجيه وما هي وضيفة كل عنوان وبماذا يقوم من عمل وكيف يتم الضبط فانا لا افهم بالبمجة بصورة جيده ولكن دخلت الى محتويات الاكبيرت المصمم من قبل المستر دولار واردت وضع تعديل فيه بحيث ان الاكسبيرت ياخذ الصفقة عند اشارة التقاطع ويغلق الصفقة عند عكس الاشارة وفتح صفقة جديده، واريد اضافة امر اذا كانت الصفقة تحركة الى اتجاه الاردر مثلا" ب 10 نقاط يبداء الاستوب لوس بالتفعيل بتحديد المستوى الاول عند قيمة الاردر وكل ما تحرك المؤشر 5 نقاط باتجاه الاردر يتحرك الاستوب لوس ب 5 نقاط حتى يصل الاردر الى التيك بروفيت 100نقطه مثلا"، ولكني لم استطع التعديل فهل هذه المسطلحات تفي بالغرض وكيف ظبطها.
extern int BreakEven=0;
extern int movestopto=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
رد: دورة صناعة الاكسبيرتات
السلام عليكم ورحمة الله وبركاته
اخواني الخبراء
انا مبندئ في الفوركس
اريد سكربت وقف الخسارة
وظيفة السكربت في حال فتفحت صفقة يقوم السكربت بوضع
وقف الخسارة بنفس النقطة فتح الصفقة بيع او شرى
واقوم انا باغلاق الصفقة يدويا
هل ممكن ذلك
اذا كان ممكن ارجو وضعه mq4
شكرا
رد: دورة صناعة الاكسبيرتات
السلام عليكم
مشرفنا العزيز الاخ دولار
احاول الاستفاده من هذا الموضوع المهم قدر المستطاع
ولكن اود معرفة كيفية صنع اكسبيرت ب استدعاء مؤشر custom
ارجو افادتى بالكود الخاص بذلك
تحياتى و تقديري
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة hassas_sa
السلام عليكم
مشرفنا العزيز الاخ دولار
احاول الاستفاده من هذا الموضوع المهم قدر المستطاع
ولكن اود معرفة كيفية صنع اكسبيرت ب استدعاء مؤشر custom
ارجو افادتى بالكود الخاص بذلك
تحياتى و تقديري
وعليكم السلام ورحمة الله وبركاته
راجع هذه المشاركه
https://forum.arabictrader.com/t93679.html#post1651054
رد: دورة صناعة الاكسبيرتات
كود PHP:
extern int point1=55;
extern int point2=100;
extern int point3=150;
extern int point4=200;
extern int point5=250;
extern int point6=300;
extern int point7=350;
extern int point8=400;
extern int point9=450;
extern int point10=500;
extern int point11=550;
extern int point12=600;
extern int point1=-55;
extern int point2=-100;
extern int point3=-150;
extern int point4=-200;
extern int point5=-250;
extern int point6=-300;
extern int point7=-350;
extern int point8=-400;
extern int point9=-450;
extern int point10=-500;
extern int point11=-550;
extern int point12=-600;
extern int magic=123477899;
extern int i=1;
int A;
int slipage=3;
int init()
{
if (Digits==5 || Digits==3){
point1=point1*10;
point2=point2*10;
point3=point3*10;
point4=point4*10;
point5=point5*10;
point6=point6*10;
point7=point7*10;
Point8=point8*10;
point1=point9*10;
point2=point10*10;
point3=point11*10;
point4=point12*10;
point5=point13*10;
point6=point14*10;
point7=point15*10;
point8=point16*10;
point1=point17*10;
point2=point18*10;
point3=point19*10;
point4=point20*10;
point5=point21*10;
point6=point22*10;
point7=point23*10;
point8=point24*10;
slipage=slipage*10;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double buy =Ask;
double sell=Bid;
double MA=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i);
double ExtMapBuffer1=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point1*Point;
double ExtMapBuffer2=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point2*Point;
double ExtMapBuffer3=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point3*Point;
double ExtMapBuffer4=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point4*Point;
double ExtMapBuffer5=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point5*Point;
double ExtMapBuffer6=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point6*Point;
double ExtMapBuffer7=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point7*Point;
double ExtMapBuffer8=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point8*Point;
double ExtMapBuffer9=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point9*Point;
double ExtMapBuffer10=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point10*Point;
double ExtMapBuffer11=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point11*Point;
double ExtMapBuffer12=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point12*Point;
//---------------------------------------------------------------------------------
double ExtMapBuffer13=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point13*Point;
double ExtMapBuffer14=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point14*Point;
double ExtMapBuffer15=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point15*Point;
double ExtMapBuffer16=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point16*Point;
double ExtMapBuffer17=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point17*Point;
double ExtMapBuffer18=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point18*Point;
double ExtMapBuffer19=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point19*Point;
double ExtMapBuffer20=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point20*Point;
double ExtMapBuffer21=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point21*Point;
double ExtMapBuffer22=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point22*Point;
double ExtMapBuffer23=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point23*Point;
double ExtMapBuffer24=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point24*Point;
///////////////////////////////////////////////////////////////////////////////////////////////
if (sell>=ExtMapBuffer1 && OrdersTotal()==0){A=1;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer2 && OrdersTotal()==1){A=2;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer3 && OrdersTotal()==2){A=3;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer4 && OrdersTotal()==3){A=4;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer5 && OrdersTotal()==1){A=5;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer6 && OrdersTotal()==2){A=6;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer7 && OrdersTotal()==3){A=7;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer8 && OrdersTotal()==0){A=8;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer9 && OrdersTotal()==1){A=9;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer10 && OrdersTotal()==2){A=10;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer11 && OrdersTotal()==3){A=11;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer12 && OrdersTotal()==1){A=12;open_sell(lot*(OrdersTotal()+1),0,0);}
//_______________________________________________
//________________________________________________
if (sell>=ExtMapBuffer13 && OrdersTotal()==0){A=13;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer14 && OrdersTotal()==1){A=14;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer15 && OrdersTotal()==2){A=15;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer16 && OrdersTotal()==3){A=16;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer17 && OrdersTotal()==1){A=17;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer18 && OrdersTotal()==2){A=18;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer19 && OrdersTotal()==3){A=19;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer20 && OrdersTotal()==0){A=20;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer21 && OrdersTotal()==1){A=21;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer22 && OrdersTotal()==2){A=22;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer23 && OrdersTotal()==3){A=23;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer24 && OrdersTotal()==1){A=24;open_sell(lot*(OrdersTotal()+1),0,0);}
اين الخطأ في هذا الكود
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة sameer digital
كود PHP:
extern int point1=55;
extern int point2=100;
extern int point3=150;
extern int point4=200;
extern int point5=250;
extern int point6=300;
extern int point7=350;
extern int point8=400;
extern int point9=450;
extern int point10=500;
extern int point11=550;
extern int point12=600;
extern int point1=-55;
extern int point2=-100;
extern int point3=-150;
extern int point4=-200;
extern int point5=-250;
extern int point6=-300;
extern int point7=-350;
extern int point8=-400;
extern int point9=-450;
extern int point10=-500;
extern int point11=-550;
extern int point12=-600;
extern int magic=123477899;
extern int i=1;
int A;
int slipage=3;
int init()
{
if (Digits==5 || Digits==3){
point1=point1*10;
point2=point2*10;
point3=point3*10;
point4=point4*10;
point5=point5*10;
point6=point6*10;
point7=point7*10;
Point8=point8*10;
point1=point9*10;
point2=point10*10;
point3=point11*10;
point4=point12*10;
point5=point13*10;
point6=point14*10;
point7=point15*10;
point8=point16*10;
point1=point17*10;
point2=point18*10;
point3=point19*10;
point4=point20*10;
point5=point21*10;
point6=point22*10;
point7=point23*10;
point8=point24*10;
slipage=slipage*10;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double buy =Ask;
double sell=Bid;
double MA=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i);
double ExtMapBuffer1=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point1*Point;
double ExtMapBuffer2=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point2*Point;
double ExtMapBuffer3=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point3*Point;
double ExtMapBuffer4=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point4*Point;
double ExtMapBuffer5=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point5*Point;
double ExtMapBuffer6=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point6*Point;
double ExtMapBuffer7=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point7*Point;
double ExtMapBuffer8=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point8*Point;
double ExtMapBuffer9=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point9*Point;
double ExtMapBuffer10=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point10*Point;
double ExtMapBuffer11=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point11*Point;
double ExtMapBuffer12=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point12*Point;
//---------------------------------------------------------------------------------
double ExtMapBuffer13=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point13*Point;
double ExtMapBuffer14=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point14*Point;
double ExtMapBuffer15=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point15*Point;
double ExtMapBuffer16=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point16*Point;
double ExtMapBuffer17=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point17*Point;
double ExtMapBuffer18=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point18*Point;
double ExtMapBuffer19=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point19*Point;
double ExtMapBuffer20=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point20*Point;
double ExtMapBuffer21=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point21*Point;
double ExtMapBuffer22=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point22*Point;
double ExtMapBuffer23=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point23*Point;
double ExtMapBuffer24=iMA(NULL,0,period_MA,0,MODE_EMA,MODE_CLOSE,i)+point24*Point;
///////////////////////////////////////////////////////////////////////////////////////////////
if (sell>=ExtMapBuffer1 && OrdersTotal()==0){A=1;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer2 && OrdersTotal()==1){A=2;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer3 && OrdersTotal()==2){A=3;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer4 && OrdersTotal()==3){A=4;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer5 && OrdersTotal()==1){A=5;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer6 && OrdersTotal()==2){A=6;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer7 && OrdersTotal()==3){A=7;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer8 && OrdersTotal()==0){A=8;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer9 && OrdersTotal()==1){A=9;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer10 && OrdersTotal()==2){A=10;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer11 && OrdersTotal()==3){A=11;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer12 && OrdersTotal()==1){A=12;open_sell(lot*(OrdersTotal()+1),0,0);}
//_______________________________________________
//________________________________________________
if (sell>=ExtMapBuffer13 && OrdersTotal()==0){A=13;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer14 && OrdersTotal()==1){A=14;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer15 && OrdersTotal()==2){A=15;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer16 && OrdersTotal()==3){A=16;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer17 && OrdersTotal()==1){A=17;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer18 && OrdersTotal()==2){A=18;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer19 && OrdersTotal()==3){A=19;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer20 && OrdersTotal()==0){A=20;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer21 && OrdersTotal()==1){A=21;open_sell(lot*(OrdersTotal()+1),0,0);}
if (sell>=ExtMapBuffer22 && OrdersTotal()==2){A=22;open_sell(lot*(OrdersTotal()+2),0,0);}
if (sell>=ExtMapBuffer23 && OrdersTotal()==3){A=23;open_sell(lot*(OrdersTotal()+5),0,0);}
if (sell>=ExtMapBuffer24 && OrdersTotal()==1){A=24;open_sell(lot*(OrdersTotal()+1),0,0);}
اين الخطأ في هذا الكود
هل الخطأ الذي تقصده في شروط الدخول أم طريقة كتابة الكود وأخطاء مطبعيه
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
هل الخطأ الذي تقصده في شروط الدخول أم طريقة كتابة الكود وأخطاء مطبعيه
في شروط الدخول استاذ ي الكريم واذا كان هناك اخطاء مطبعية يا ريت توضحها ولك الشكر
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة sameer digital
في شروط الدخول استاذ ي الكريم واذا كان هناك اخطاء مطبعية يا ريت توضحها ولك الشكر
أول خطأ في المتغيرات الخارجيه فلا أدري لماذا قمت بتعريف المتغير بنفس الإسم مرتين
extern int point1=55
extern int point1=-55
فلا يمكن أن نقوم بتعريف نفس المتغير مرتين لذلك قم بتغيير الإسم
بالنسبه للشرط
sell>=ExtMapBuffer1
فأحب أن أوضح فقط أن الإكسبرت في هذه الحاله سوف يقوم بالدخول في الصفقه دائما دالما السعر أكبر من
المتغير ExtMapBuffer1 وليس فقط عند الملامسه الأولى لذلك قم بإضافة بعض الشروط الأخرى لحل هذه المشكله
2 مرفق
رد: دورة صناعة الاكسبيرتات
اخى مستر دولار ارجو مساعدتى فى مفاهيم البرمجة وقد قرأت مواضيعك التعليميه مثل اكسبرت الباربولك سار وحاولت عمل اكسبرت مضاعفات عكسيه بنفس طريقة عمله لكى اتعلم و لكنه فشل:0006: ولهذا لدى بعض الاسئلة بشكل عام:
1-الدالة int orderstotal() كيف ستتغير القيمة cnt وانت كما ذكرت ان الدالة يمر عليها الاكسبرت مرة واحده فقط عند بداية عمله.
2- الدالة int init() if(Digits<4 point=0.01 else point=0.0001 digits=4
اليس المفروض ان يكون digits=5وليس 4 وpoint=0.00001 للشركات التى تستخدم خمس ارقام.
3-الدالة voidهل هى خارج الدالة start ام دخلها و لماذا؟
4-الاكسبرت المرفق للمضاعفات فكرته حصر السعر بين حد علوى و سفلى فمثلا عند وصوله للحد العلوى يتم فتح صفقة شراء وفى نفس الوقت يفتح صفقة معلقة بيع لوت مضاعف عند الحد السفلى ولا يتم فتح صفقات اكثر من صفقة مفعله و صفقة معلقة وعند وصول السعر للهدف يتم الغاء الصفقة المعلقة .
ارجو مناقشة الاخطاء فى مفاهيم الاكسبرت .
5-شكرا اخى العزيز.
1 مرفق
رد: دورة صناعة الاكسبيرتات
السلام عليكم ورحمة اللة وبركاتة
شكرا علي مجهودكم الرائع والفعال
لو تكرمتم علي اخباري بالخطاء عند كتابة الاكسبيرت انة في المرفقات
وشكرا
رد: دورة صناعة الاكسبيرتات
اقتباس:
المشاركة الأصلية كتبت بواسطة robin
اخى مستر دولار ارجو مساعدتى فى مفاهيم البرمجة وقد قرأت مواضيعك التعليميه مثل اكسبرت الباربولك سار وحاولت عمل اكسبرت مضاعفات عكسيه بنفس طريقة عمله لكى اتعلم و لكنه فشل:0006: ولهذا لدى بعض الاسئلة بشكل عام:
1-الدالة int orderstotal() كيف ستتغير القيمة cnt وانت كما ذكرت ان الدالة يمر عليها الاكسبرت مرة واحده فقط عند بداية عمله.
2- الدالة int init() if(Digits<4 point=0.01 else point=0.0001 digits=4
اليس المفروض ان يكون digits=5وليس 4 وpoint=0.00001 للشركات التى تستخدم خمس ارقام.
3-الدالة voidهل هى خارج الدالة start ام دخلها و لماذا؟
4-الاكسبرت المرفق للمضاعفات فكرته حصر السعر بين حد علوى و سفلى فمثلا عند وصوله للحد العلوى يتم فتح صفقة شراء وفى نفس الوقت يفتح صفقة معلقة بيع لوت مضاعف عند الحد السفلى ولا يتم فتح صفقات اكثر من صفقة مفعله و صفقة معلقة وعند وصول السعر للهدف يتم الغاء الصفقة المعلقة .
ارجو مناقشة الاخطاء فى مفاهيم الاكسبرت .
5-شكرا اخى العزيز.
الداله التي يمر عليها الإكسبرت مره واحده فقط هي الداله init
فلاحظ يوجد فرق بين الداله init وبين الكلمة المحجوزه int وهي لتعريف متغير على أنه عدد صحيح
أما الداله orderstotal فهذا الداله قمنا ببرمجتها ثم بعد ذلك إستدعائها داخل الداله الأصليه start وبالتالي في كل مره يتم عمل الداله start سوف تكون الداله orderstotal بداخلها ويتم إستدعائها
بالنسبه للشركات التي تستخدم خمس أرقام فعلى سبيل المثال إذا أردت وضع الهدف 50 نقطه بالتالي إذا كانت العمله اليورو دولار والسعر 1.4030 فسوف يكون الهدف حسب كلامك 1.4030+50*0.00001
فالناتج 1.4035 أما إذا جعلتها 0.0001 فالناتج 1.4030+50*0.0001 = 1.4080 وهو الصحيح
الكلمة المحجوزه void تستخدم لتعريف دالة وهي ليست دالة بحد ذاتها ونعم تكون الداله المعرفه خارج
الداله start بشكل عام أي داله تريد تعريفها يجب أن تكون خارج الداله start ثم بعد ذلك تقوم بإستدعائها بداخل الداله start