النتائج 106 إلى 120 من 175
الموضوع: دورة صناعة الاكسبيرتات
- 26-11-2010, 09:37 PM #106
رد: دورة صناعة الاكسبيرتات
الاستاذ الفاضل وضاح عطار.
اشكرك على الموضوع القيم.
لقد كنت في الماضي ابحث عن من يعمل لي مؤشر يقوم بحفظ قيمة الصفقة open position price في متغير ثم اقوم بعد ذلك باجراء عدة معادلات على هذا المتغير. واتضح فيما بعد بان هذا العمل لا يتم عن طريق صنع مؤشر بل عن طريق الاكسبيرت.
وما اريده هو التالي:
1- متغير يحتفظ بسعر فتح الصفقة.
2- نقوم باجراء معادلات حسابية على هذا المتغير. فعلى سبيل المثال نختار فترة زمنية (frame time) ساعة واحدة، ويكون كالتالي:
اذا
اعلى سعر في الساعة - قيمة المتغير >= 0.0020
اغلق الصفقة.
وشكرا( انا هذا الموضوع الذي طرحته اخي وضاح العطار شيق للغاية وسوف اكون في غاية السعادة اذا اريتنا الكود لعمل ذلك ولك كل الحب والشكر).
- 02-12-2010, 05:51 PM #107
رد: دورة صناعة الاكسبيرتات
اشكر الاخوة القائمين على هذا الموضوع ( الأخ مستر دولار - الأخ وضاح العطار وجميع الاخوة هنا )
اخوتي هذا اول سؤال لي هنا وانا مبتدأ بالنسبة لموضوع البرمجة
حاولت برمجة اكسبيرت بسيط جدا واحتاج لسطر برمجي لأضيفه عليه
الاكسبيرت هو اكسبيرت عادي ويقوم على تقاطع خطوط الموفيج .. ويقوم بالدخول بيع أو شراء عند التقاطع
هل من الممكن ان اعرف ما هو السطر البرمجي اللذي يجب اضافته أو التعديل اللذي يجعل الاكسبيرت يقوم بالبيع والشراء عند عودة اي شمعة لملامسة خط موفينج 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");
}
آخر تعديل بواسطة Sniper man ، 02-12-2010 الساعة 06:02 PM
- 03-12-2010, 03:32 AM #108
رد: دورة صناعة الاكسبيرتات
تفضل هذا الكود على سبيل المثال
كود PHP:Open[0]>ma1&&Close[0]<=ma1+Distance*point&&Close[0]>=ma1
في هذه الحاله نقوم بفتح صفقه شراء
وستكون الشروط بالعكس في حالة البيع
مرفق أيضا إكسبرت كنا قد برمجناه سابقا لنفس الفكره التي تتكلم عنها وهي الإرتداد من موفينج 50 راجع كود الإكسبرت وشروط الدخول
- 03-12-2010, 10:48 AM #109
رد: دورة صناعة الاكسبيرتات
اشكرك اخي مستر دولار على المساعدة
لكني سبق وتصفحت الاكسبيرت المرفق ورأيت انه يختلف قليلا عن الاكسبيرت اللذي وضعته لك ...فالاكسبيرت اللذي ارفقته انت اكثر شروطا وتفاصيل والاكسبيرت اللذي صممته لك لايتجاوز في بساطته شرط التقاطع والملامسة اي انه بسيط جدا لشخص مثلك ولكنه كافي مبدأيا بالنسبة لي
لكن سؤالي اللذي ابحث عن اجابة له الآن هو كيف اعرف distance
هل من الممكن ان تقوم بالتعديل على الاكسبيرت اللذي وضعته لك بأن تضيف السطر البرمجي للشرط وتعرف لي الديستينس في خصائص الاكسبيرت
علما بأني حاولت التعريف لها بالعبارة التالية
extern double Distance = 0,0020*point
ولكنه بعد فحصه يعطيني البرنامج بأنه هناك خطأ والعبارة التي يعطيني اياها هي
variable expected
مع اشارة خطأ حمراء صغيرة بجانبها
فما الحل برأيك ؟
واعتذر لهذا السؤال الغبي ولكن بيني وبين معرفة الطريقة شعرة واريدك ان تصلني اليها ولك كل الاحترام والتقدير والشكر على المساعدة
الله يجزاك الخير ويجعلها في ميزان حسناتك يوم القيامة
- 09-12-2010, 07:53 PM #110
رد: دورة صناعة الاكسبيرتات
هل بالامكان توضيح معنى العناوين البرمجيه وما هي وضيفة كل عنوان وبماذا يقوم من عمل وكيف يتم الضبط فانا لا افهم بالبمجة بصورة جيده ولكن دخلت الى محتويات الاكبيرت المصمم من قبل المستر دولار واردت وضع تعديل فيه بحيث ان الاكسبيرت ياخذ الصفقة عند اشارة التقاطع ويغلق الصفقة عند عكس الاشارة وفتح صفقة جديده، واريد اضافة امر اذا كانت الصفقة تحركة الى اتجاه الاردر مثلا" ب 10 نقاط يبداء الاستوب لوس بالتفعيل بتحديد المستوى الاول عند قيمة الاردر وكل ما تحرك المؤشر 5 نقاط باتجاه الاردر يتحرك الاستوب لوس ب 5 نقاط حتى يصل الاردر الى التيك بروفيت 100نقطه مثلا"، ولكني لم استطع التعديل فهل هذه المسطلحات تفي بالغرض وكيف ظبطها.
extern int BreakEven=0;
extern int movestopto=0;
extern int TrailingStop=0;
extern int TrailingStep=0;
- 01-02-2011, 03:33 PM #111
رد: دورة صناعة الاكسبيرتات
السلام عليكم ورحمة الله وبركاته
اخواني الخبراء
انا مبندئ في الفوركس
اريد سكربت وقف الخسارة
وظيفة السكربت في حال فتفحت صفقة يقوم السكربت بوضع
وقف الخسارة بنفس النقطة فتح الصفقة بيع او شرى
واقوم انا باغلاق الصفقة يدويا
هل ممكن ذلك
اذا كان ممكن ارجو وضعه mq4
شكرا
- 15-02-2011, 02:27 AM #112
رد: دورة صناعة الاكسبيرتات
السلام عليكم
مشرفنا العزيز الاخ دولار
احاول الاستفاده من هذا الموضوع المهم قدر المستطاع
ولكن اود معرفة كيفية صنع اكسبيرت ب استدعاء مؤشر custom
ارجو افادتى بالكود الخاص بذلك
تحياتى و تقديري
- 15-02-2011, 12:54 PM #113
رد: دورة صناعة الاكسبيرتات
وعليكم السلام ورحمة الله وبركاته
راجع هذه المشاركه
https://forum.arabictrader.com/t93679.html#post1651054
- 25-03-2011, 10:21 PM #114
رد: دورة صناعة الاكسبيرتات
كود 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);}
- 25-03-2011, 11:26 PM #115
- 26-03-2011, 12:44 AM #116
- 26-03-2011, 07:00 PM #117
رد: دورة صناعة الاكسبيرتات
أول خطأ في المتغيرات الخارجيه فلا أدري لماذا قمت بتعريف المتغير بنفس الإسم مرتين
extern int point1=55
extern int point1=-55
فلا يمكن أن نقوم بتعريف نفس المتغير مرتين لذلك قم بتغيير الإسم
بالنسبه للشرط
sell>=ExtMapBuffer1
فأحب أن أوضح فقط أن الإكسبرت في هذه الحاله سوف يقوم بالدخول في الصفقه دائما دالما السعر أكبر من
المتغير ExtMapBuffer1 وليس فقط عند الملامسه الأولى لذلك قم بإضافة بعض الشروط الأخرى لحل هذه المشكله
- 26-03-2011, 11:07 PM #118
رد: دورة صناعة الاكسبيرتات
اخى مستر دولار ارجو مساعدتى فى مفاهيم البرمجة وقد قرأت مواضيعك التعليميه مثل اكسبرت الباربولك سار وحاولت عمل اكسبرت مضاعفات عكسيه بنفس طريقة عمله لكى اتعلم و لكنه فشل ولهذا لدى بعض الاسئلة بشكل عام:
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-شكرا اخى العزيز.
- 29-03-2011, 01:32 AM #119
رد: دورة صناعة الاكسبيرتات
السلام عليكم ورحمة اللة وبركاتة
شكرا علي مجهودكم الرائع والفعال
لو تكرمتم علي اخباري بالخطاء عند كتابة الاكسبيرت انة في المرفقات
وشكرا
- 29-03-2011, 08:12 PM #120
رد: دورة صناعة الاكسبيرتات
الداله التي يمر عليها الإكسبرت مره واحده فقط هي الداله 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
المواضيع المتشابهه
-
طلب صناعة إكسبرت RSI
By FOREX_WAR in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 22آخر مشاركة: 29-04-2017, 10:58 PM -
طلب = صناعة سكربت
By cobra100 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 6آخر مشاركة: 28-10-2008, 02:41 PM -
طريقة صناعة الاكسبيرتات الاليه
By ماجد كو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 24آخر مشاركة: 05-05-2008, 03:02 PM