مشاهدة النسخة كاملة : موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
doctor forex
19-12-2015, 10:02 PM
سؤال برمجى لو تكرمتم
لما نحب ندخل فى أكسبرت pip_step & pip_step_exponent
ونيجى نعرف الـ steps ونقول ; int step2,step3 وبعدها فى البرمجة نكتب ;Step2=pip_step_exponent*Step
;Step3=pip_step_exponent*Step2
يبقى أنا لى سؤالين :
السؤال الأول : مش المفروض أن step2 و step3 تاخد القيمة double ؟ ليه بقى ؟ لأن أولا الـstep مرتبطة بالـpoints بمعنى أنى لو pip step = 25وعملت pip step exponent = 1.5 يبقى المفروض الـstep2 = 37.5 لو int هتطلع 38 مش هتطلع بالقيمة الصح ,وبالتالى هتؤثر على قيمة كووووووووووول الـsteps اللى بعدها وهتيجى عند مرحلة معينة وتلاقى الـsteps كلها بقت زى بعضها .. صح ولا غلط ؟
السؤال الثانى : أنا لما اعرّف الـ step2 و الـstep3 فى أول الأكسبرت ، الأكسبرت هيطبق الـpip step exponent على الأتنين دول بس ولا كل الـsteps اللى بعدها ؟ يعنى لو هيطبق الـpip step exponent على الستبين دول بس يبقى انا محتاج أعرف عدد من الـsteps فى الأول بعدد صفقات التبريد اللى أنا محتاجها ؟؟؟؟؟؟؟؟؟؟؟؟؟؟
أرجو الرد ولكم منى جزيل الشكر
hajsoft
26-12-2015, 07:38 PM
السلام عليكم ورحمة الله تعالى وبركاته
جزاكم الله الف خير على جميع المعلومات التي تقدمونها و جعلها الله صدقة جارية في الدنيا و الاخرة
عندي سؤال برمجي الله يبارك فيكم :
اذا اردت ان يتم فتح صفقات كلما تحرك السعر عدد من النقاط ستيب , مع شرط ان لا يفتح نفس نوع الصفقة من نفس السعر
حاولت كثيرا ان اجد صيغة الشرط او الدالة و لكن لم أفلح
اذا ممكن مساعدة
//+------------------------------------------------------------------+
//| Hajsoft1.mq4 |
//| Copyright 2015, HajSoft |
/
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, HajSoft""
#property version "1.00"
#property strict
extern double Lot = 0.01 ;
extern int StepOp = 3 ;
extern int StepReO = 1 ;
extern int TakeProfit = 0 ;
extern int HTP = 7 ;
extern int MagicNumber = 868380 ;
int T,B1,S1,C,B2,S2;
double TPB,TPS;
bool BE,SE ;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
T = 1 ;
if ( Digits == 5 || Digits == 3 ){ T = 10 ;}
if ( TakeProfit == 0 ) {TPB = 0;}
else {TPB = Ask+TakeProfit*Point*T;}
if ( TakeProfit == 0 ) {TPS = 0;}
else {TPS = Bid-TakeProfit*Point*T;}
B1= OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen);
S1 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double OrderStepPriceB2 = LastOpenPriceB() + StepOp*Point*T ;
double OrderStepPriceS2 = LastOpenPriceS() - StepOp*Point*T ;
//if ( Ask != OrderOpenPrice() )
//if ( Ask >= OrderOpenPrice() + StepReO*Point*T )
//if ( Ask <= OrderOpenPrice ()- StepReO*Point*T )
{
if ( Ask > OrderStepPriceB2 )
{
B2 = OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen);
S2 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange);
}
if ( Bid < OrderStepPriceS2 )
{
B2 = OrderSend(Symbol(),OP_BUY,Lot,Ask,4,0,TPB," Buy Initial ",MagicNumber,0,clrSeaGreen);
S2 = OrderSend(Symbol(),OP_SELL,Lot,Bid,4,0,TPS," Sell Initial ",MagicNumber,0,clrDarkOrange);
}
}
}
double LastOpenPriceB()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool s1=OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()== MagicNumber && OrderType() == OP_BUY )
{
return(OrderOpenPrice());}
}
return(0);
}
//--------------------- LastOpenPrice For Sell Order -----------------------+
double LastOpenPriceS()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool s1=OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()== MagicNumber && OrderType() == OP_SELL )
{
return(OrderOpenPrice());}
}
return(0);
}
//////////////////////
//+------------------------ Hide TakeProfit For Buy Orders ------------------------------------------+
int HBuyTP()
{
for( int i=OrdersTotal() ; i>=0 ; i-- )
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY)
{
if (Bid>(OrderOpenPrice() + HTP * Point * T))
{
C = OrderClose(OrderTicket(),OrderLots(),Bid,4*T,clrAq uamarine);
}
}
}
}
return(0);
}
//+----------------------- Hide TakeProfit For Sell Orders ------------------------------------------+
int HSellTP()
{
for( int i=OrdersTotal() ; i>=0 ; i-- )
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL)
{
if (Ask<(OrderOpenPrice() - HTP * Point * T))
{
C = OrderClose(OrderTicket(),OrderLots(),Ask,4*T,clrAq uamarine);
}
}
}
}
return(0);
}
hajsoft
28-12-2015, 06:05 PM
السلام عليكم ورحمة الله وبركاته
بارك الله فيكم و رزقكم خير الدنيا و الآخرة على كل المجهودات و المعلومات القيمة
عند استفسار جزاكم الله الف خير
هل توجد دالة او وظيفة برمجية تمكنني من حفظ قيمة متغير او بمعنى ادق ان اجعل الإكسبيرت يقرأ الاكيوتى قبل فتح اى صفقات ويحتفظ بقيمته
وفى الاعدادات نضع خانه ونسميها profit مثلا
ونضع شرط الاغلاق اذا كان الاكيوتى الحالى اكبر من او يساوى اخر اكيوتى + profit اغلق جميع العقود
ثم يقوم بتخزين قيمة الاكيوتى الجديد ويصبح اخر اكيوتى
ثم يبدأ ويستدعى اخر اكيوتى مره اخرى
ارجو ان يكون الشرح واضح
وفى الحقيقه لا اعلم اذا كانت هذه الفكره قابله للتنفيذ ام لا
تقبلو تحياتي
اسلام العوامى
28-12-2015, 06:38 PM
السلام عليكم ورحمة الله وبركاته
بارك الله فيكم و رزقكم خير الدنيا و الآخرة على كل المجهودات و المعلومات القيمة
عند استفسار جزاكم الله الف خير
هل توجد دالة او وظيفة برمجية تمكنني من حفظ قيمة متغير او بمعنى ادق ان اجعل الإكسبيرت يقرأ الاكيوتى قبل فتح اى صفقات ويحتفظ بقيمته
وفى الاعدادات نضع خانه ونسميها profit مثلا
ونضع شرط الاغلاق اذا كان الاكيوتى الحالى اكبر من او يساوى اخر اكيوتى + profit اغلق جميع العقود
ثم يقوم بتخزين قيمة الاكيوتى الجديد ويصبح اخر اكيوتى
ثم يبدأ ويستدعى اخر اكيوتى مره اخرى
ارجو ان يكون الشرح واضح
وفى الحقيقه لا اعلم اذا كانت هذه الفكره قابله للتنفيذ ام لا
تقبلو تحياتي
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،يمكن عمل ذلك عن طريق انشاء متغير static ثم نقوم باعطاؤه قيمة الايكويتى الحالى فى الوظيفة oninit وبعد ذلك نقوم فى امر الاغلاق بوضع الشرط المطلوب ثم عند تحقيق الشرط والاغلاق يتم تخزين قيمة الايكويتى الجديدة فى المتغير الذى قمنا بانشائه،،،
،،،وبذلك ستظل قيمة المتغير ثابته ولن تتغير سوى بتحقيق شرط الاغلاق،،،
،،،تقبل تحياتى،،،
hajsoft
28-12-2015, 07:49 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،يمكن عمل ذلك عن طريق انشاء متغير static ثم نقوم باعطاؤه قيمة الايكويتى الحالى فى الوظيفة oninit وبعد ذلك نقوم فى امر الاغلاق بوضع الشرط المطلوب ثم عند تحقيق الشرط والاغلاق يتم تخزين قيمة الايكويتى الجديدة فى المتغير الذى قمنا بانشائه،،،
،،،وبذلك ستظل قيمة المتغير ثابته ولن تتغير سوى بتحقيق شرط الاغلاق،،،
،،،تقبل تحياتى،،،
لله يكرمك استاذي الفاضل
شكرا جزيلا:1 (73)::1 (105):
hajsoft
30-12-2015, 04:30 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،يمكن عمل ذلك عن طريق انشاء متغير static ثم نقوم باعطاؤه قيمة الايكويتى الحالى فى الوظيفة oninit وبعد ذلك نقوم فى امر الاغلاق بوضع الشرط المطلوب ثم عند تحقيق الشرط والاغلاق يتم تخزين قيمة الايكويتى الجديدة فى المتغير الذى قمنا بانشائه،،،
،،،وبذلك ستظل قيمة المتغير ثابته ولن تتغير سوى بتحقيق شرط الاغلاق،،،
،،،تقبل تحياتى،،،
السلام عليكم و رحمة الله و بركاته
بارك الله فيك اخي الفاضل
الآن عملت متغير static في oninit . و نجحت في حفظ القيمة ثابتة بعد كل تيك . لكن مع اقفال جميع الصفقات ؛ تبقى قيمة المتغير ثابتة لأنه في oninit . و محافظة على نفس القيمة السابقة . فهل من طريقة لتحديثه بعد اغلاق جميع الصفقات ؟
الله يكرمك . و تقبل تحياتي
اسلام العوامى
30-12-2015, 05:46 PM
السلام عليكم و رحمة الله و بركاته
بارك الله فيك اخي الفاضل
الآن عملت متغير static في oninit . و نجحت في حفظ القيمة ثابتة بعد كل تيك . لكن مع اقفال جميع الصفقات ؛ تبقى قيمة المتغير ثابتة لأنه في oninit . و محافظة على نفس القيمة السابقة . فهل من طريقة لتحديثه بعد اغلاق جميع الصفقات ؟
الله يكرمك . و تقبل تحياتي
،،،نعم اخى الفاضل يوجد طريقة وهى كما ذكرت لك من قبل يتم اعطاء المتغير القيمة الجديدة بعد تحقق شرط الاغلاق او يمكن بطريقة اخرى وهى التحقق من عدد صفقات الزوج واذا كانت صفر يتم اعطاء المتغير القيمة الجديدة،،،
،،،تحياتى،،،
hajsoft
20-01-2016, 05:30 PM
السلام عليكم و رحمة الله و بركاته
جزاكم الله الف خير
ما هي الصيغة البرمجية او الدالة التي تمكنني من تغيير لون الخلفية للشارت و الوان الشموع فور تشغيل الاكسبيرت
او تحميل تمبليت فور وضع الاكسبيرت على الشارت
شكرا جزيلا
forexeg
27-01-2016, 10:33 PM
مساء الخير
اين قائمه ستارت اللى هبدء وضع الكود فيه بالاصدار الحديث
void OnTick()
void OnDeinit(const int reason)
int OnInit()
doctor forex
06-02-2016, 07:06 PM
أخى الكريم اسلام العوامى
أخوانى الكرام المحيطين بالبرمجة
كيف احول int start إلى Void OnTick ؟
forexeg
11-02-2016, 09:08 PM
السلام عليكم
بالنسبه للكود التالى
for (int i =Ordertotal-1;i>=0;i--)
ازاى هتبقى حلقه تكراريه
وانت بتنقص من الاوردر توتل واحد
ولما توصل للصفر هيتوقف
عاوز افهم النقطه دي بعد اذنكم ياشباب
سيد على احمد
14-02-2016, 05:02 PM
Ea generator كيف يمكننى تنزيل هذا البرنامج لو سمحت
اسلام العوامى
14-02-2016, 05:19 PM
السلام عليكم
بالنسبه للكود التالى
for (int i =Ordertotal-1;i>=0;i--)ازاى هتبقى حلقه تكراريه
وانت بتنقص من الاوردر توتل واحد
ولما توصل للصفر هيتوقف
عاوز افهم النقطه دي بعد اذنكم ياشباب
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،كلامك صحيح ، عندما تصل الحلقة الى صفر تتوقف ولكن لا تنسى ان الاكسبيرت يقوم بمراجعة كامل الكود كل حركة سعرية وان الحلقة التكرارية ستعمل كل حركة سعرية وعندما تصل للصفر ستتوقف ويتم اكمال باقي الكود وهكذا،،،
forexeg
15-02-2016, 09:39 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،كلامك صحيح ، عندما تصل الحلقة الى صفر تتوقف ولكن لا تنسى ان الاكسبيرت يقوم بمراجعة كامل الكود كل حركة سعرية وان الحلقة التكرارية ستعمل كل حركة سعرية وعندما تصل للصفر ستتوقف ويتم اكمال باقي الكود وهكذا،،،
شكرا جزيلا لك ولدروس القيمة ياغالى
بس ملاحظه فى الدرس العاشر الدقيقه 6 بتقول
مش عاوزين الحلقه تقف واننا نحاول ان الحلقه بتاعتنا ديما يكون فى ايدينا خرز
فماذا تقصد بهذه الجمله
محمد عمار
05-03-2016, 09:29 PM
السلام عليكم
نبي اني ياخوتي كيف نقرا في دوره mql4 بس نبي مساعدتكم نبي التحديت اهو مايقبلس الرموز زي رمز الضرب *
السوال اهني نبي نعرف كان نبي نضرب ععد معين شن اندير لان الرمز مايقبلاش الميتااديتور
محمد عمار
05-03-2016, 09:34 PM
السلام عليكم
خوتي نبي المتااديتور مايقبلش الرمز اهو * الي هو الضرب شن الحل !!:1 (69):
محمد عمار
05-03-2016, 09:39 PM
شكرا جزيلا لك ولدروس القيمة ياغالى
بس ملاحظه فى الدرس العاشر الدقيقه 6 بتقول
مش عاوزين الحلقه تقف واننا نحاول ان الحلقه بتاعتنا ديما يكون فى ايدينا خرز
فماذا تقصد بهذه الجمله
اخي الكريم وينهم الحلقات هل هما علي اليوتيوب !! الرجاء الرابط:1 (48):
اسلام العوامى
09-03-2016, 12:19 AM
اخي الكريم وينهم الحلقات هل هما علي اليوتيوب !! الرجاء الرابط:1 (48):
،،،اهلا بك اخي الفاضل ، الدروس موجوده بالمواضيع علي الروابط التالية،،،
دورة تعليم البرمجة الاحترافية بلغة mql4 (http://www.fx-arabia.com/vb/showthread.php?t=34301)
دورة تعليم البرمجة الثانية MQL5 (http://www.fx-arabia.com/vb/showthread.php?t=39479)
دروس شرح البرمجة المتقدمة بلغة MQL4 (http://www.fx-arabia.com/vb/showthread.php?t=49096)
،،،تحياتي،،،
ابراهيم خير
21-03-2016, 09:30 PM
كيفية جعل الاكسبيرت يشترى بعد مرور مدة معينة ولتكن 30% من وقت فتح الشمعة الجديدة اذا كانت صاعدة , ويبيع اذا كانت هابطة بعد هذة المدة
محمد العمري
24-03-2016, 08:05 PM
السلام علبكم
كيفك اخي اسلام بأذن الله تكون تمام؟
اخي انا حاليا اقوم ببرمجة مؤشر يعرض لي خصائص المنصة ومعلومات الحساب
لكن توقفت عند موضوع حيرني
اريد تخصيص خانة لأظهار اعلى عدد اوامر (مفتوحة ومعلقة في نفس الوقت) يسمح به البروكر كحد اقصى MaxOrders
ولكن لم اجد دالة لها
مثلا fxdd اقصى عدد اوامر فيها هو 100 امر ... اكتف تريد اقصى عدد اوامر في الحسابات الحقيقية هو 250 امر وفي الحسابات الديمو هو 500 امر .... شركة forex.com اقصى عدد اوامر مفتوح غير محدود
لدي اكسبيرد عرض فيه هذه الخانة لعرض اقصى عدد اوامر يسمح به البروكر ولاكني لا اعرف كيف قام المبرمج ببرمجتها ( يمكن هناك دالة مخصصة لل MaxOrders وانا لا اعرفها؟ )
الان ليس امامي الا طريقتين لمعرفة اقصى عدد اوامر يسمح به البروكر وهي :
الاولى
فتح عدد لا نهائي من الاوامر المعلقة البعيدة جدا كي لا تتفعل حتى يتوقف البروكر عن قبول اوامر جديدة ثم نحسب عدد الاوامر
الثانية
اسأل البروكر عن اقصى حد من الاوامريقبله
والطريقتين غير منطقيات .... ارجو افادتي
اسلام العوامى
25-03-2016, 01:22 AM
السلام علبكم
كيفك اخي اسلام بأذن الله تكون تمام؟
اخي انا حاليا اقوم ببرمجة مؤشر يعرض لي خصائص المنصة ومعلومات الحساب
لكن توقفت عند موضوع حيرني
اريد تخصيص خانة لأظهار اعلى عدد اوامر (مفتوحة ومعلقة في نفس الوقت) يسمح به البروكر كحد اقصى MaxOrders
ولكن لم اجد دالة لها
مثلا fxdd اقصى عدد اوامر فيها هو 100 امر ... اكتف تريد اقصى عدد اوامر في الحسابات الحقيقية هو 250 امر وفي الحسابات الديمو هو 500 امر .... شركة forex.com اقصى عدد اوامر مفتوح غير محدود
لدي اكسبيرد عرض فيه هذه الخانة لعرض اقصى عدد اوامر يسمح به البروكر ولاكني لا اعرف كيف قام المبرمج ببرمجتها ( يمكن هناك دالة مخصصة لل MaxOrders وانا لا اعرفها؟ )
الان ليس امامي الا طريقتين لمعرفة اقصى عدد اوامر يسمح به البروكر وهي :
الاولى
فتح عدد لا نهائي من الاوامر المعلقة البعيدة جدا كي لا تتفعل حتى يتوقف البروكر عن قبول اوامر جديدة ثم نحسب عدد الاوامر
الثانية
اسأل البروكر عن اقصى حد من الاوامريقبله
والطريقتين غير منطقيات .... ارجو افادتي
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي محمد ، معرفة اقصي عدد صفقات ممكن فتحه علي منصة يكون عن طريق الكود التالي،،،
long y = AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
،،،تحياتي،،،
محمد العمري
26-03-2016, 05:12 AM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي محمد ، معرفة اقصي عدد صفقات ممكن فتحه علي منصة يكون عن طريق الكود التالي،،،
long y = AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
،،،تحياتي،،،
هل هذا الامر يعرض اقصى اوامر مفتوحة + معلقة؟
وكيف يمكنني جعل المؤشر يعرض امام خانة MaxOrders كلمة Unlimited اذا كان الحد الاقصى لعدد الاوامر التي يمكن فتحها على المنصة غير محدود مثل منصة FOREX.COM ؟
اسلام العوامى
26-03-2016, 01:02 PM
هل هذا الامر يعرض اقصى اوامر مفتوحة + معلقة؟
وكيف يمكنني جعل المؤشر يعرض امام خانة MaxOrders كلمة Unlimited اذا كان الحد الاقصى لعدد الاوامر التي يمكن فتحها على المنصة غير محدود مثل منصة FOREX.COM ؟
،،،نعم هذا الامر يعرض اقصي عدد للوامر المفتوحة والمعلقة ، وبالنسبة للسؤال الثاني يمكن ان تقوم بتطبيق الكود الذي تم ارفاقه سابقا علي المنصة المذكورة ومعرفة الناتج ثم وضع جملة شرطية اذا كان الناتج يساوي هذه القيمة يتم كتابة unlimited واذا كان لا يساويها يتم كتابة قيمة الناتج،،،
،،،تحياتي،،،
محمد العمري
27-03-2016, 04:54 AM
،،،نعم هذا الامر يعرض اقصي عدد للوامر المفتوحة والمعلقة ، وبالنسبة للسؤال الثاني يمكن ان تقوم بتطبيق الكود الذي تم ارفاقه سابقا علي المنصة المذكورة ومعرفة الناتج ثم وضع جملة شرطية اذا كان الناتج يساوي هذه القيمة يتم كتابة unlimited واذا كان لا يساويها يتم كتابة قيمة الناتج،،،
،،،تحياتي،،،
شكرا لك اخ اسلام ... تم عمل المطلوب بنجاح
الان سؤال اخر بعد اذنك
اريد عرض الستوب اوت المنصة (Margin SO) ... (المارجن اوت ليفل)
تعلم ان لكل شركة (المارجن اوت ليفل) عند وصول المارجن لفل لها تستقبل المارجن كول
سؤالي هو هل يوجد دالة مخصصة لعرض المارجن اوت لفل للبروكر ؟
كود عرض مارجن اوت لفل البروكر ؟
اسلام العوامى
27-03-2016, 09:36 AM
شكرا لك اخ اسلام ... تم عمل المطلوب بنجاح
الان سؤال اخر بعد اذنك
اريد عرض الستوب اوت المنصة (Margin SO) ... (المارجن اوت ليفل)
تعلم ان لكل شركة (المارجن اوت ليفل) عند وصول المارجن لفل لها تستقبل المارجن كول
سؤالي هو هل يوجد دالة مخصصة لعرض المارجن اوت لفل للبروكر ؟
كود عرض مارجن اوت لفل البروكر ؟
،،،اهلا اخي محمد ، يتم استخدام الكود التالي،،،
AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);
boto1199
01-04-2016, 09:43 PM
السلام عليكم استاذ اسلام لو سمحت عندي سؤالين من خلال الصور المرفقة ارجو المساعدة ولك جزيل الشكر اخي . السؤال الاول كيف اضاعف السعر بهذا الاكسبرت بالاعدادات الارقام الموجودة هي 0.02 هل هي عشرين سنت ؟ و0.2 هل هي اثنين دولار؟ الرجاء الافادة وكيف اعدل لمضاعفة السعر وهذه صورته
http://www.4shared.com/download/RkoXKD_7ce?lgfp=3000&dsid=5ddjib.201ff4302bc57e7e5c05fa2cef0a4c73&sbsr=6bbeef7f0f81839523f5ab17c3cff05296d&usbsr=16728c13736e0cbbb41f6d163e6bc15a96d
االسؤال الثاني مثله لاكسبرت فاب تيربو 0.1 هل هذا لوت واحد دولار واذا لا كيف اعدل عليه ليتضاعف السعر وشكرا استاذي الكريم للمساعدة هذه الصورة الثانية والله يجزيك الخير ويرحم والديك
http://www.4shared.com/download/J5UZUfq-ce?lgfp=3000&dsid=5ddjib.6ff9e28dd1a2144f13ed1ca271646176&sbsr=2c34ff86f22d4a27ca9bb8af883f14fc96d&usbsr=2a31d7ab7bd22051f61684142971f5ca96d
raame
02-04-2016, 05:24 AM
السلام عليكم ورحمه الله وبركاتة
جزاك الله كل خير استاذ اسلام على ما تقوم به
قرات درس المضاعفات رقم 11 والحمد لله كل شي تمام وااضح اريد فقط اضافة خاصيه اقصى مضاعفة يوم احدده ويوصل الى اقصى مضاعفة ان يرجع ويبدا من الوت الاساسي كيف ذالك بدون ادارة راس المال ..
اسلام العوامى
02-04-2016, 09:46 AM
السلام عليكم ورحمه الله وبركاتة
جزاك الله كل خير استاذ اسلام على ما تقوم به
قرات درس المضاعفات رقم 11 والحمد لله كل شي تمام وااضح اريد فقط اضافة خاصيه اقصى مضاعفة يوم احدده ويوصل الى اقصى مضاعفة ان يرجع ويبدا من الوت الاساسي كيف ذالك بدون ادارة راس المال ..
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، لعمل هذا تقوم بعمل متغير خارجي لكتابة اقصي مضاعفة ، ثم تقوم بكتابة جملة شرطية ، اذا كان اللوت الحالي اكبر من او يساوي المتغير الخارجي يتم اعادة اللوت للبداية،،،
double MaxLot = 2.0;
if(Lots>=MaxLot){Lots=FirstLot;}
،،،تحياتي،،،
raame
02-04-2016, 01:00 PM
بارك الله فيك على سرعة الرد
قمت بنسخ ما كتبت
لكن يعطيني خطا على كلمة فيرست لوت FirstLot
ارجو منك
توضيح لي اين اكتب بتحديد الشرط هل في ستارت
او في اخر الصفحه
سامحني ع كثرة الاساله انا مبتدا جدا في الغة
اسلام العوامى
02-04-2016, 01:13 PM
بارك الله فيك على سرعة الرد
قمت بنسخ ما كتبت
لكن يعطيني خطا على كلمة فيرست لوت FirstLot
ارجو منك
توضيح لي اين اكتب بتحديد الشرط هل في ستارت
او في اخر الصفحه
سامحني ع كثرة الاساله انا مبتدا جدا في الغة
،،،اهلا اخي الفاضل ، first lot اكتب مكانها اسم المتغير الموجود لديك في الاكسبيرت والذي يعبر عن لوت البداية ، و Maxlot متغير يتم اضافته في بداية الاكسبيرت في global area ، والجملة الشرطية يتم وضعها قبل شرط فتح الصفقة مباشرة،،،
،،،تحياتي،،،
raame
06-04-2016, 04:10 AM
بارك الله فيك وجزاك الله كل خير
ماهو الشرط بعد تحقيق هدف اليوم ان يتوقف الاكسبريت عن العمل لليوم التالي ؟؟
يوجد في الاكسبريت اربع شروط كيف اجعل كل شرط ينفذ مره واحده اما ع ربح او خساره ان لا يبقا الاكسبريت يكرر الشروط مع كل تحرك للسعر؟؟
كيف اجعل الاكسبريت ان يتوقف ساعة محددي في النهار ويلغي جميع العقود المفتوحه ويرجع نشاطه بعد انتهاء الساعه المحددي؟؟
اسلام العوامى
06-04-2016, 11:16 AM
بارك الله فيك وجزاك الله كل خير
ماهو الشرط بعد تحقيق هدف اليوم ان يتوقف الاكسبريت عن العمل لليوم التالي ؟؟
يوجد في الاكسبريت اربع شروط كيف اجعل كل شرط ينفذ مره واحده اما ع ربح او خساره ان لا يبقا الاكسبريت يكرر الشروط مع كل تحرك للسعر؟؟
كيف اجعل الاكسبريت ان يتوقف ساعة محددي في النهار ويلغي جميع العقود المفتوحه ويرجع نشاطه بعد انتهاء الساعه المحددي؟؟
،،،اهلا بك اخي الفاضل ، بالنسبة لاول سؤال يتم عمل متغير من النوع datetime ويتم تخزين وقت شمعة اليوم الحالي فيه،،،
time0=iTime(Symbol(),PERIOD_D1,0);
،،،ثم يتم وضع جملة شرطية في اول الكود ، اذا تحقق الهدف وكان المتغير الجديد يساوي وقت شمعة اليوم الحالي لا يكمل الاكسبيرت،،،
if(time0==iTime(Symbol(),PERIOD_D1,0)){return(0);}
،،،بالنسبة للسؤال الثاني ، يتم عمل متغير من النوع bool ويأخذ القيمة true في وظيفة oninti ،ثم يضاف لكود تنفيذ الشرط ان قيمة هذا المتغير يجب ان تكون true ، ثم يأخذ المتغير القيمة false بعد تنفيذ الشرط،،،
،،،بالنسبة للسؤال الثالث ، يتم وضع الجملة التالية في اول الكود،،،
if(TimeCurrent()>=StringToTime("4:00")&&TimeCurrent()<=StringToTime("5:00")){return(0);}
،،،تحياتي،،،
مرحبا اخ اسلام
انا عضو جديد في المنتدى اطلعت على دورة البرمجة الخاصة بالاكسبريتات
ونفذت الاكسبريت الخاص الذي أنت عملته على تقاطع الموفنجات ولكن عندما اضغط compile تظهر لي الرسالة التالية "Ordersend error 130" ولاتظهر أي أخطاء أخرى ما الحل وشكرا لك
اسلام العوامى
08-04-2016, 04:35 PM
مرحبا اخ اسلام
انا عضو جديد في المنتدى اطلعت على دورة البرمجة الخاصة بالاكسبريتات
ونفذت الاكسبريت الخاص الذي أنت عملته على تقاطع الموفنجات ولكن عندما اضغط compile تظهر لي الرسالة التالية "Ordersend error 130" ولاتظهر أي أخطاء أخرى ما الحل وشكرا لك
،،،اهلا بك اخي الفاضل ، الرجاء ارفاق الكود للاطلاع عليه وتحديد الخطأ،،،
،،،تحياتي،،،
لم أفهم مالمقصود بالكود ولكن تظهر لي الرسالة التالية
return value of 'OrderSend' should be checked macrossea.mq4 68 2
هذا رابط الاكسبرت http://www.fx-arabia.com/vb/uploaded/30595_11460147467.mq4
raame
09-04-2016, 04:36 AM
بارك الله فيك اخ اسلام على ما تقوم به من مجهود
انا اعمل على اكسبرت عن طريق المضاعفات
اريد من الاكسبريت في حال تم تحقيق هدف اليوم على ربح ان يتوقف لليوم التالي
لقد ارففت لي شرط لكن الشرط يقوم بفتح صفقه واحده يوميه
if(time0==iTime(Symbol(),PERIOD_D1,0)){return(0);}
........................
انا اريد ان يبقا يعمل الاكسبريت في حال تم تحقيق ربح من اي صفقه ان يتوقف لليوم التالي
اسلام العوامى
09-04-2016, 09:55 AM
لم أفهم مالمقصود بالكود ولكن تظهر لي الرسالة التالية
return value of 'OrderSend' should be checked macrossea.mq4 68 2
هذا رابط الاكسبرت http://www.fx-arabia.com/vb/uploaded/30595_11460147467.mq4
،،،هذه الرسالة تنبيه ولاتؤثر علي عمل الاكسبيرت ولكن يتم التخلص منها بإسناد قيمة الوظيفة الي متغير من النوع bool ، مثل المرفق،،،
،،،تحياتي،،،
اسلام العوامى
09-04-2016, 10:03 AM
بارك الله فيك اخ اسلام على ما تقوم به من مجهود
انا اعمل على اكسبرت عن طريق المضاعفات
اريد من الاكسبريت في حال تم تحقيق هدف اليوم على ربح ان يتوقف لليوم التالي
لقد ارففت لي شرط لكن الشرط يقوم بفتح صفقه واحده يوميه
if(time0==iTime(Symbol(),PERIOD_D1,0)){return(0);}
........................
انا اريد ان يبقا يعمل الاكسبريت في حال تم تحقيق ربح من اي صفقه ان يتوقف لليوم التالي
،،،اهلا بك اخي الفاضل ، كما اخبرتك سابقا يتم وضع شرط تحقق الهدف بالاضافة الي السطر الذي تم ارفاقه ، وشرط تحقق الهدف يعتمد علي طريقة عمل الاكسبيرت ، اذا كان يغلق الصفقة قبل ان يضاعف او بمعني اخر اذا كان يفتح صفقة واحدة في كل مرة ويغلق السابقة فيمكن اضافة شرط ان ربح اخر صفقة اغلقت يكون اكبر من الصفر،،،
double Last_Order_pro()
{
datetime d =0;
double xt =0;
int total = OrdersHistoryTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if (OrderOpenTime()>d) {d=OrderOpenTime(); xt=OrderProfit();}
}
}
return(xt);
}
if(Last_Order_pro()>0&&time0==iTime(Symbol(),PERIOD_D1,0)){return(0);}
لكن عندما افحص الاكسبرت في الميتاتريدر لا يفتح أي صفقةمهما كان نوع العملة أو الفريم الذي اعمل عليه وتظهر الرسالةالتالية في (journal)
( ma USDJPY,M1: OrderSend error 130 )
اظن لدي نفس المشكلة التي ظهرت لك في الفيديو العاشر
اسلام العوامى
09-04-2016, 07:53 PM
لكن عندما افحص الاكسبرت في الميتاتريدر لا يفتح أي صفقةمهما كان نوع العملة أو الفريم الذي اعمل عليه وتظهر الرسالةالتالية في (journal)
( ma USDJPY,M1: OrderSend error 130 )
اظن لدي نفس المشكلة التي ظهرت لك في الفيديو العاشر
،،،هذه المشكلة لها اكثر من سبب في كود الاكسبيرت ، راجع التعديلات المرفقة وبانتظار اي سؤال منك،،،
،،،تحياتي،،،
raame
09-04-2016, 08:46 PM
،،،اهلا بك اخي الفاضل ، كما اخبرتك سابقا يتم وضع شرط تحقق الهدف بالاضافة الي السطر الذي تم ارفاقه ، وشرط تحقق الهدف يعتمد علي طريقة عمل الاكسبيرت ، اذا كان يغلق الصفقة قبل ان يضاعف او بمعني اخر اذا كان يفتح صفقة واحدة في كل مرة ويغلق السابقة فيمكن اضافة شرط ان ربح اخر صفقة اغلقت يكون اكبر من الصفر،،،
double Last_Order_pro()
{
datetime d =0;
double xt =0;
int total = OrdersHistoryTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if (OrderOpenTime()>d) {d=OrderOpenTime(); xt=OrderProfit();}
}
}
return(xt);
}
if(Last_Order_pro()>0&&time0==iTime(Symbol(),PERIOD_D1,0)){return(0);}
بارك الله فيك
هاذا ما ابحث عنه
ارجو منك ان تكتب لي بي مثال كيف اضيف ذالك على الاكسبريت ان كان لديك اكسبريت جاهز بنفس الصيغه ارجو ارفاقه من اجل التعلم كيف تكتب تلك الشروط اين توضع
جزاك الله كل خير ارجو ان لا اكون اثقلت عليك
اسلام العوامى
10-04-2016, 11:02 AM
بارك الله فيك
هاذا ما ابحث عنه
ارجو منك ان تكتب لي بي مثال كيف اضيف ذالك على الاكسبريت ان كان لديك اكسبريت جاهز بنفس الصيغه ارجو ارفاقه من اجل التعلم كيف تكتب تلك الشروط اين توضع
جزاك الله كل خير ارجو ان لا اكون اثقلت عليك
،،،اهلا بك اخي الفاضل ، اول كود يتم وضعه في نهاية كود الاكسبيرت ، والسطر الثاني يتم وضعه في بداية وظيفة Ontick،،،
،،،تحياتي،،،
شكرا لك اخ اشلام وبارك الله فيك
اصبح الاكسبرت يفتح الصفقات و أتمنى أن توضح لي هذه التعديلات وشكرا لك
شكرا لك اخ اشلام وبارك الله فيك
اصبح الاكسبرت يفتح الصفقات ولكن هناك مشكلة صغيرة إن الكود ( Orderstotal()==0) يحددعدد الصفقات بواحدة و إذا حدثت فرصة لصفقة جديدة لايفتح هذه الصفقة إذا لم تكن الصفقة السابقة قد أغلقت
raame
12-04-2016, 04:21 PM
السلام عليكم ورحمه الله
بارك الله فيك اخ اسلام
عندي شرط اريد من الاكسبريت ان يبيع مثلا بعد ان يرتفع السوق مقدار 50 نقطه
المشكله كل ما يرتفع السوق 50 نقطه يبيتع وبعد ان يرتفع 100 نقطه يبيع
ارجو التصيحيح اين المشكله بشرط
if (Close[1]>Open[1] && Ask+(Close[1]-0.0050)){
اسلام العوامى
12-04-2016, 09:16 PM
شكرا لك اخ اشلام وبارك الله فيك
اصبح الاكسبرت يفتح الصفقات ولكن هناك مشكلة صغيرة إن الكود ( Orderstotal()==0) يحددعدد الصفقات بواحدة و إذا حدثت فرصة لصفقة جديدة لايفتح هذه الصفقة إذا لم تكن الصفقة السابقة قد أغلقت
،،،تم التعديل،،،
،،،تحياتي،،،
اسلام العوامى
12-04-2016, 09:20 PM
السلام عليكم ورحمه الله
بارك الله فيك اخ اسلام
عندي شرط اريد من الاكسبريت ان يبيع مثلا بعد ان يرتفع السوق مقدار 50 نقطه
المشكله كل ما يرتفع السوق 50 نقطه يبيتع وبعد ان يرتفع 100 نقطه يبيع
ارجو التصيحيح اين المشكله بشرط
if (Close[1]>Open[1] && Ask+(Close[1]-0.0050)){
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، الكود المكتوب لاعلاقة له بالمطلوب ، الرجاء تحديد اذا كان المطلوب فتح صفقة مرة واحده بعد تحرك السعر 50 نقطة ام كل 50 نقطة يفتح صفقة وهل البداية من السعر الحالي ام من صفقة مفتوحة،،،
،،،تحياتي،،،
raame
12-04-2016, 09:32 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، الكود المكتوب لاعلاقة له بالمطلوب ، الرجاء تحديد اذا كان المطلوب فتح صفقة مرة واحده بعد تحرك السعر 50 نقطة ام كل 50 نقطة يفتح صفقة وهل البداية من السعر الحالي ام من صفقة مفتوحة،،،
،،،تحياتي،،،
المطلوب ان يفتح صفقه بعد 50 نقطه من سعر فتح شمعة اليوم مره واحدي بدون اوامر معقله بعد ان يصل السعر الى نقطة الدخول يدخل ماركت ع الشرط المطلوب
raame
13-04-2016, 07:36 PM
السلام عليكم ورحمة الله
ارجو من الاخ اسلام شرح تلك النقطه بشي من التفصيل كيف تكتب
،،،بالنسبة للسؤال الثاني ، يتم عمل متغير من النوع bool ويأخذ القيمة true في وظيفة oninti ،ثم يضاف لكود تنفيذ الشرط ان قيمة هذا المتغير يجب ان تكون true ، ثم يأخذ المتغير القيمة false بعد تنفيذ الشرط،،،
،،،بالنسبة للسؤال الثالث ، يتم وضع الجملة التالية في اول الكود،،،
انا عندي شروط اثنين واحد بيع واحد شراء اريد ان ينفذ الشراء ولا يكرر فتح الصفقات الشراء وبعد الانتهاء ينفذ شرط البيع ولا يكرر الصفقه بيع
raame
19-04-2016, 03:52 PM
السلام عليكم ورحمة الله وبركاتة
اخ اسلام
ماهو الكود
ينفذ الاكسبريت امر شراء مره واحده في اليوم وا امر بيع مرا واحده في اليوم بارك الله فيك
اسلام العوامى
19-04-2016, 05:53 PM
السلام عليكم ورحمة الله وبركاتة
اخ اسلام
ماهو الكود
ينفذ الاكسبريت امر شراء مره واحده في اليوم وا امر بيع مرا واحده في اليوم بارك الله فيك
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يتم عمل متغيران من النوع datetime ،،،
datetime timeb,times;
،،،ثم في شرط فتح صفقة الشراء يتم اضافة الكود التالي،،،
if(timeb!=iTime(Symbol(),PERIOD_D1,0))
،،،ثم بعد امر فتح صفقة الشراء يتم كتابة الكود التالي،،،
timeb=iTime(Symbol(),PERIOD_D1,0)
،،،ويتم عمل نفس الخطوات مع صفقة البيع ولكن باستخدام المتغير الاخر times،،،
،،،تحياتي،،،
raame
21-04-2016, 09:03 AM
بارك الله فيك وجزيت خير الجزاء
كيف يكتب الشرط
في حال اغلقت الشمعه رقم واح صاعده ان يشتري بعد تراجع السوق 20 نقطه او اكبر من 20 نقطه على شمعة صفر
ابراهيم خير
23-04-2016, 12:53 AM
السلام عليكم
مجهود رائع
ماهو كود ( بعد مرور 20% من وقت الشمعة اذا كانت الشمعة صاعدة ياخذ شراء واذاكانت هابطة ياخذ بيع )
وايضا كيفية جعل الاكسبيرت يحسب السبريد ويضيفة على التيك بروفت والستوب لوز
مرحبا أخي اسلام
اريد أن أسال هل يمكن أفحص الاكسبرت من نوع(mql4) في منصة أخرى غير الميتاتريدر
هل توجد طريقة ليعمل الاكسبرت دون اتصال بالإنترنت (حتى عندما أطفأ الحاسوب)
لأنه هناك منصات مثلا تنفذ أمر (trailing stop) حتى لو كان لايوجد اتصال بالنت أما في الميتاتريدر يجب أن تبقى المنصة مفتوحة ومتصلة بالنت
مرحبا أخي اسلام
اريد أن أسال هل يمكن أفحص الاكسبرت من نوع(mql4) في منصة أخرى غير الميتاتريدر
هل توجد طريقة ليعمل الاكسبرت دون اتصال بالإنترنت (حتى عندما أطفأ الحاسوب)
لأنه هناك منصات مثلا تنفذ أمر (trailing stop) حتى لو كان لايوجد اتصال بالنت أما في الميتاتريدر يجب أن تبقى المنصة مفتوحة ومتصلة بالنت
،،،تم التعديل،،،
،،،تحياتي،،،
مرحبا أخ اسلام
أريد أن أجرب الاكسبرت بحيث يعمل طوال اليوم ولا أستطيع (بسبب انقطاع النت مثلا )
هل توجد منصة تستطيع تشغيل الاكسبرت بشكل دائم دون اتصال بالنت ( منصة ويب , منصة سيركس , أو أي منصة أخرى)
raame
15-05-2016, 01:59 PM
السلام عليكم ورحمة الله وبركاتة
اسعد الله اوقاتك اخي اسلام
ماهو الشرط ان اجعل الاكسبريت ينفذ على السعر Step دون زياده او نفقصان على نفس عدد النقاط الموضع مسبقا
با رك الله فيك
اسلام العوامى
15-05-2016, 02:29 PM
السلام عليكم ورحمة الله وبركاتة
اسعد الله اوقاتك اخي اسلام
ماهو الشرط ان اجعل الاكسبريت ينفذ على السعر Step دون زياده او نفقصان على نفس عدد النقاط الموضع مسبقا
با رك الله فيك
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يجب اولا عمل وظيفة خارجية لمعرفة سعر افتتاح اخر صفقة تم تفعيلها،،،
double lastOpenPrice(){
datetime d =0;
double xt =0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if (OrderOpenTime()>d) {d=OrderOpenTime(); xt=OrderOpenPrice();}
}
}
return(xt);
}
،،،ثم يتم كتابة الشرط التالي قبل امر فتح الصفقة الجديدة،،،
if(Ask==lastOpenPrice()+(Step*Point)){
// امر فتح الصفقة
}
،،،تحياتي،،،
بهاء الدين
04-06-2016, 10:46 AM
السلام عليكم
في ىالمحاضرة 9 من دروس البرمجة الاحترافية حاولت التطبيق على المنصة البرنامج لكن البرنامج لا يفتح صفقات و يظهر الخطا130 .كود البرنامج كما يلي .ارجو المساعدة من الاخوة المبرمجين لمعرفة الخطا بالتحديد
extern string F = "fast ma setting";
extern int fperiod = 10;
extern int fshift = 0;
extern int fmethod = 0;
extern int fapplied = 0 ;
extern string S = "slow ma setting";
extern int speriod = 50;
extern int sshift = 0;
extern int smethod = 0;
extern int sapplied = 0;
extern string e = "ea managment";
extern int Takeproft = 50;
extern int Stoploss = 20;
extern double Lot = 0.1;
extern int Magic = 112255;
int T;
//--------------------------------------------------------------------------------------------------------------
int start()
{
double tiksize = MarketInfo(Symbol(),MODE_TICKSIZE);
if(tiksize== 0.00001||0.001)
T = tiksize*10;
else
T=tiksize;
double fmalast = iMA(Symbol(),0,fperiod,fshift,fmethod,fapplied,2);
double fmanow = iMA(Symbol(),0,fperiod,fshift,fmethod,fapplied,1);
double smalast = iMA(Symbol(),0,speriod,sshift,smethod,sapplied,2);
double smanow = iMA(Symbol(),0,speriod,sshift,smethod,sapplied,1);
if(fmalast<smalast&&fmanow>smanow)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(Takeproft*T),NULL,Magic,0,clrAli ceBlue);
if(fmalast>smalast&&fmanow<smanow)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss *T),Bid-(Takeproft*T),NULL,Magic,0,clrRed);
return (0);
}
//---------------------------------------------------------------------------------------------------------------
اسلام العوامى
04-06-2016, 01:48 PM
السلام عليكم
في ىالمحاضرة 9 من دروس البرمجة الاحترافية حاولت التطبيق على المنصة البرنامج لكن البرنامج لا يفتح صفقات و يظهر الخطا130 .كود البرنامج كما يلي .ارجو المساعدة من الاخوة المبرمجين لمعرفة الخطا بالتحديد
extern string F = "fast ma setting";
extern int fperiod = 10;
extern int fshift = 0;
extern int fmethod = 0;
extern int fapplied = 0 ;
extern string S = "slow ma setting";
extern int speriod = 50;
extern int sshift = 0;
extern int smethod = 0;
extern int sapplied = 0;
extern string e = "ea managment";
extern int Takeproft = 50;
extern int Stoploss = 20;
extern double Lot = 0.1;
extern int Magic = 112255;
int T;
//--------------------------------------------------------------------------------------------------------------
int start()
{
double tiksize = MarketInfo(Symbol(),MODE_TICKSIZE);
T=1; if(Digits==5||Digits==3){T=10;}
double fmalast = iMA(Symbol(),0,fperiod,fshift,fmethod,fapplied,2);
double fmanow = iMA(Symbol(),0,fperiod,fshift,fmethod,fapplied,1);
double smalast = iMA(Symbol(),0,speriod,sshift,smethod,sapplied,2);
double smanow = iMA(Symbol(),0,speriod,sshift,smethod,sapplied,1);
if(fmalast<smalast&&fmanow>smanow)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*Point*T),Ask+(Takeproft*Point*T),NULL,Ma gic,0,clrAliceBlue);
if(fmalast>smalast&&fmanow<smanow)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss *Point*T),Bid-(Takeproft*Point*T),NULL,Magic,0,clrRed);
return (0);
}
//---------------------------------------------------------------------------------------------------------------
،،،اهلا بك اخي الفاضل ، قم بعمل التعديلات الموجوده بالاقتباس باللون الاحمر وسيعمل الاكسبيرت بشكل سليم،،،
،،،تحياتي،،،
بهاء الدين
04-06-2016, 04:08 PM
اشكرك اخي و بارك الله فيك
Pips Hunter
04-06-2016, 05:19 PM
السلام عليكم
اخى الكريم اسلام
عندى استفسار وهو ان عندى مؤشر رقمي مهمته هو حسابه بعض البيانات مثل قيمة الموفنج 200 على فريمات مختلفة فى نفس الوقت
احاول ان اعمل باك تست له ولكن المشكلة اثناء الباك تست ان البيانات التى يعطيها المؤشر كلها غلط عدا بيانات نفس الفريم الى التست عليه فقط رغم انه فى الواقع والحقيقة غير كدة وبيحسب كل الفريمات فى وقت واحد
لذلك الباك تست بيخلى المؤشر لايعمل بشكل صحيح الا على الفريم الى التست شغال عليه فقط ،، رغم انه يعمل على 4 فريمات فى وقت واحد فى الحالة الطبيعيه وهو 1 - 5 - 15 - 30 دقيقة
فهل يوجد حل برمجي لهذه المشكلة ؟؟
اسلام العوامى
04-06-2016, 05:54 PM
السلام عليكم
اخى الكريم اسلام
عندى استفسار وهو ان عندى مؤشر رقمي مهمته هو حسابه بعض البيانات مثل قيمة الموفنج 200 على فريمات مختلفة فى نفس الوقت
احاول ان اعمل باك تست له ولكن المشكلة اثناء الباك تست ان البيانات التى يعطيها المؤشر كلها غلط عدا بيانات نفس الفريم الى التست عليه فقط رغم انه فى الواقع والحقيقة غير كدة وبيحسب كل الفريمات فى وقت واحد
لذلك الباك تست بيخلى المؤشر لايعمل بشكل صحيح الا على الفريم الى التست شغال عليه فقط ،، رغم انه يعمل على 4 فريمات فى وقت واحد فى الحالة الطبيعيه وهو 1 - 5 - 15 - 30 دقيقة
فهل يوجد حل برمجي لهذه المشكلة ؟؟
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يجب الاطلاع علي كود المؤشر لمعرفة المشكلة وبالتالي ايجاد حل لها،،،
،،،تحياتي،،،
Pips Hunter
04-06-2016, 06:02 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يجب الاطلاع علي كود المؤشر لمعرفة المشكلة وبالتالي ايجاد حل لها،،،
،،،تحياتي،،،
تفضل اخى اسلام
فى المؤشر 8 strings
MA1
MA2
MA3
الي اخري وفكرة عمل المؤشر انه يحسب مدي بعد السعر الحالى ارتفاعا او انخفاضا عن خط الموفنج لفريم معين
من 1 الي 8 على 8 فريمات مختلفة لمعرفة اتجاة الترند العام
Pips Hunter
04-06-2016, 06:03 PM
المؤشر فى المرفقات
rami.signals
23-06-2016, 08:23 PM
السلام عليكم
هل من مستجيب لسؤالي لو تكرمتوا
ما خليت غوغل ومنتديات ومبرمجين وشركات إلا و سألتهم و لا يوجد رد حتى الأن
أريد كود تبريد الصفات ياجماعة طلعت روحي وما كنت حصل هذا الكود أرجو المساعدة
اسلام العوامى
23-06-2016, 10:22 PM
السلام عليكم
هل من مستجيب لسؤالي لو تكرمتوا
ما خليت غوغل ومنتديات ومبرمجين وشركات إلا و سألتهم و لا يوجد رد حتى الأن
أريد كود تبريد الصفات ياجماعة طلعت روحي وما كنت حصل هذا الكود أرجو المساعدة
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، الكود موجود بالمشاركة علي الرابط التالي،،،
http://www.fx-arabia.com/vb/showpost.php?p=870282&postcount=559
،،،تحياتي،،،
rami.signals
24-06-2016, 01:17 AM
أستاذ إسلام العوامي
بداية الأمر أشكرك كل الشكر على الرد و انا أتابع فيديوهاتك على اليوتيوب للبرمجة والشكر و التقدير لك على هذه الدروس
لكن الكود الذي أريد هو للتبيريد
و إليك الشرح
1- عندي أكسبرت مفتوح أريد إضافة بعض التعديلات عليه وهي كالتالي
1- عنما يفتح الاكسبرت صفقة بيع مثلا ب 1 لوت في حال خسرت الصفقة 30 أو 40 نقطة فسيقوم الأكسبرت بفتح صفقة بيع أخرى بقيمة 1.4 لوت مثلا و هكذا وفي حال عكس الصفقتين الأولى 80 نقطة والثانية 40 نقطة فسيقوم الاكسبرت بفتح صفقة 1.96 وهكذا تكون المتتالية وسيقوم الأكسبرت بتحريك الهدف لجميع الصفقات بحيث أخرج بربح نهائي 10 نقاط أو 15 ن
هذا الكود الذي أريده أولا
ثانيا : أريد كود أن لايسمح الأكسبرت إلا بفتح زوج واحد في حال تحققت شروط الدخول مع العلم أنني أضع الأكسبرت على جميع الشارتات ( المشكلة التي أوجاهها الأن أن الأكسبرت يفتح عدة أزواج مع بعض لأنه يجد تحقق الشروط في عدة أزواج
بارك الله فيك أستاذ إسلام وطموحي أن أصبح مبرمج وإنشاء الله سأصل على يدك
rami.signals
24-06-2016, 01:27 AM
input int MagicNumber=1982; //Magic Number
input double Lots=0.1; //Fixed Lots
input double StopLoss=50; //Fixed Stop Loss (in Points)
input double TakeProfit=150; //Fixed Take Profit (in Points)
input int TrailingStop=15; //Trailing Stop (in Points)
input int Slippage=3;
//+------------------------------------------------------------------+
//| expert OnTick function |
//+------------------------------------------------------------------+
void OnTick()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if(TotalOrdersCount()==0)
{
int result=0;
if((iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,0)<50) && (iRSI(NULL,PERIOD_H4,14,PRICE_CLOSE,0)<50) && (iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)<50)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage ,0,0,"RAMI V2_5M BUY AUTO",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
int MyOrderSelect=OrderSelect(result,SELECT_BY_TICKET) ;
int MyOrderModify=OrderModify(OrderTicket(),OrderOpenP rice(),NormalizeDouble(TheStopLoss,Digits),Normali zeDouble(TheTakeProfit,Digits),0,Green);
}
}
if((iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,0)>50) && (iRSI(NULL,PERIOD_H4,14,PRICE_CLOSE,0)>50) && (iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)>50)) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippag e,0,0,"RAMI V2_5M SELL AUTO",MagicNumber,0,Red);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
int MyOrderSelect=OrderSelect(result,SELECT_BY_TICKET) ;
int MyOrderModify=OrderModify(OrderTicket(),OrderOpenP rice(),NormalizeDouble(TheStopLoss,Digits),Normali zeDouble(TheTakeProfit,Digits),0,Green);
}
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
int MyOrderSelect=OrderSelect(cnt,SELECT_BY_POS,MODE_T RADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
if(OrderType()==OP_BUY)
{
if((iRSI(NULL,0,14,PRICE_CLOSE,0)>800)) //here is the close buy condition
{
int MyOrderClose=OrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
int MyOrderModify=OrderModify(OrderTicket(),OrderOpenP rice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
}
}
}
}
else
{
if((iRSI(NULL,0,14,PRICE_CLOSE,0)<-800)) // here is the close sell condition
{
int MyOrderClose=OrderClose(OrderTicket(),OrderLots(), OrderClosePrice(),Slippage,Red);
}
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
int MyOrderModify=OrderModify(OrderTicket(),OrderOpenP rice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(), 0,Red);
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| expert TotalOrdersCount function |
//+------------------------------------------------------------------+
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
int MyOrderSelect=OrderSelect(i,SELECT_BY_POS,MODE_TRA DES);
if(OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
//+------------------------------------------------------------------+
//| expert Start function
//+------------------------------------------------------------------+
void drawshap(string name,color LineColor,double Price1,double Price2,datetime Time1,datetime Time2)
{
if(ObjectFind(name) == -1)
{
ObjectCreate(name, OBJ_RECTANGLE, 0, Time1,Price1,Time2,Price2);
ObjectSet(name, OBJPROP_COLOR, LineColor);
ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name, OBJPROP_WIDTH, 2);
}
else if(ObjectGet(name,OBJPROP_TIME1)!=Time1||ObjectGet (name,OBJPROP_PRICE1)!=Price1){
ObjectDelete(name);
}
}
//+------------------------------------------------------------------+
double lastOpenPrice(){
datetime d =0;
double xt =0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if (OrderOpenTime()>d) {d=OrderOpenTime(); xt=OrderOpenPrice();}
}
}
return(xt);
}
ابو نور8
24-06-2016, 11:20 PM
السلام عليكم
استاذ اسلام هل ممكن مساعدتي في عمل حلقه كالاتي
كل20 شمعه ترسم نفس المعادله
احاول البحث عن كيرف فايتنج جيد حاولت كثيرا ولم انجح في عمل الحلقه
شكرا مقدما
اسلام العوامى
25-06-2016, 12:22 AM
السلام عليكم
استاذ اسلام هل ممكن مساعدتي في عمل حلقه كالاتي
كل20 شمعه ترسم نفس المعادله
احاول البحث عن كيرف فايتنج جيد حاولت كثيرا ولم انجح في عمل الحلقه
شكرا مقدما
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، ماهي المعادلة المراد رسمها او تنفيذها في الحلقة،،،
،،،تحياتي،،،
ابو نور8
25-06-2016, 01:54 AM
في الحقيقه لم اعرف جدوى المعادله لاني لم احويلها لكود
توجد برامج كثيره لاستخراج معادلات CURVE FIITNG
GMDH-MATLAB -SPSS-NCSS واحتاج الى التجربه كثيرا حتى اصل الى معادله مناسبه ان كانت موجوده
المعادله كالتالي هي معادله من برنامج الماتلاب الذي اعتقد انه الافضل
f(x) = 1.168e-27*x^8 + -2.333e-23*x^7 +1.916e-19*x^6 + -8.347e-16*x^5 +2.066e-12*x^4 +-2.876e-09*x^3 +2.063e-06*x^2 + -0.0005748*x + 1.356
حيث
f(x) = قيمة الخط المراد رسمه
X=رقم الشمعه
كما في الشارت السابق قيمة X=1 ثم 2 وهكذا ولان المعادله السابقه معموله على بيانات 20 شمعه سوف يعوض قيمة X من 1-20 ويرسم الخط ويبدا يعد من جديد 1-20 الشمعه التاليه وهكذا
في النهايه سوف نحصل على نفس السايكل متكرر
شكرا
mohamed fawzy
22-07-2016, 03:41 AM
السلام عليكم
ما معنى هذا الخطأ وكيف يتم التخلص منه implicit conversion from 'number' to 'string'] ]
السلام عليك أخ إسلام لدي مشكلة في الشرط التالي
if (sar2<close[2] && sar1>clos[1])
double open =Open[0];
حيث (sar)
هو متحول أسندت له إعدادات الباربولك سار
والمشكلة هي أنني أريد أن أسند للمتحول نفس سعر (open[0] ) الاول ( أي عند ثاني نقطة باربولك سار فوق الشمعة المتشكلةطالما أن الباربولك سار فوق الشموع) ماهو الحل
اسلام العوامى
10-08-2016, 12:17 PM
السلام عليك أخ إسلام لدي مشكلة في الشرط التالي
if (sar2<close[2] && sar1>clos[1])
double open =Open[0];
حيث (sar)
هو متحول أسندت له إعدادات الباربولك سار
والمشكلة هي أنني أريد أن أسند للمتحول نفس سعر (open[0] ) الاول ( أي عند ثاني نقطة باربولك سار فوق الشمعة المتشكلةطالما أن الباربولك سار فوق الشموع) ماهو الحل
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، لم افهم ماذا تريد تماما ، الرجاء الشرح مرة اخري بمزيد من التفصيل،،،
،،،تحياتي،،،
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، لم افهم ماذا تريد تماما ، الرجاء الشرح مرة اخري بمزيد من التفصيل،،،
،،،تحياتي،،،
السلام أحي اسلام
في الصورة المرفقة أريد أن أحفظ سعر افتتاح الشمعة التي عليها الخط العامودي ( open )طالما أن الباربولك سار فوق الشموع
وعندما يصبح الباربولك سار أسفل الشموع أريد أن يحفظ سعر افتتاح الشمعة الثانية التي تحتها الباربولك سار في متحول أخر
أو في نفس المتحول السابق( open ) طالما أن الباربولك تحت الشموع ........
وهكذا كلما تغير الباربولك سار ( أريده دائما أن يحفظ سعر افتتاح الشمعة الثانية )
السلام عليك أخ اسلام
أرسلت لك رسالة أخرى مرفقة بصورة مع شرح ما أريد بشكل مفصل تقريبا هل مازال ما اريده غير مفهوم لم ترد علي بعد
اسلام العوامى
14-08-2016, 02:35 PM
السلام أحي اسلام
في الصورة المرفقة أريد أن أحفظ سعر افتتاح الشمعة التي عليها الخط العامودي ( open )طالما أن الباربولك سار فوق الشموع
وعندما يصبح الباربولك سار أسفل الشموع أريد أن يحفظ سعر افتتاح الشمعة الثانية التي تحتها الباربولك سار في متحول أخر
أو في نفس المتحول السابق( open ) طالما أن الباربولك تحت الشموع ........
وهكذا كلما تغير الباربولك سار ( أريده دائما أن يحفظ سعر افتتاح الشمعة الثانية )
السلام عليك أخ اسلام
أرسلت لك رسالة أخرى مرفقة بصورة مع شرح ما أريد بشكل مفصل تقريبا هل مازال ما اريده غير مفهوم لم ترد علي بعد
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،الكود التالي يمثل الحل للمطلوب بالصورة المرفقة وهو حفظ افتتاح ثاني شمعة والباربوليك اعلي السعر ويمكن عكسها لحفظ سعر افتتاح ثاني شمعة والباربوليك اسفل السعر،،،
sar1 = iSAR(Symbol(),PERIOD_CURRENT,Step,Max,1);
sar2 = iSAR(Symbol(),PERIOD_CURRENT,Step,Max,1);
sar3 = iSAR(Symbol(),PERIOD_CURRENT,Step,Max,1);
if(sar3<Close[3]&&sar2>Close[2]&&sar1>Close[1]){open = Open[1];}
،،،تحياتي،،،
Sami_99020
15-08-2016, 10:01 PM
السلام عليكم كيف ممكن اضيف الى الاكسبيرت انديكيتور خارجي
اسلام العوامى
16-08-2016, 01:29 PM
السلام عليكم كيف ممكن اضيف الى الاكسبيرت انديكيتور خارجي
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،الشرح موجود بالموضوع علي الرابط التالي،،،
http://www.fx-arabia.com/vb/showthread.php?t=49984
،،،تحياتي،،،
السلام عليكم ورحمة الله وبركاته
شكرا لك الستاذ سامي العوامي على دروس البرمجة
أنا قمت بتنفيذ الاكسبيرت في الحلقة التاسعة وكان في ملاحظتين من البرنامج، حاولت شغل الاكسبيرت الا انه لم يعمل ولا أعرف السبب.
//+------------------------------------------------------------------+
//| MA_crose_EA.mq4 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern string s1 ="fast MA sittings";
extern int Fperiod = 10;
extern int Fshift = 0;
extern int Fmethod = 0;
extern int Fapplied = 0;
extern string s2="slow MA sittings";
extern int Speriod = 20;
extern int Sshift = 0;
extern int Smethod = 0;
extern int Sapplied = 0;
extern string s3="EA manegmend";
extern int TakeProfit=50;
extern int StopLoss=30;
extern double lot=0.01;
extern int magic=12345;
double t;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double ticksize = MarketInfo(Symbol(),MODE_TICKSIZE);
if (ticksize== 0.00001 ||0.001)
t=ticksize*10;
else
t=ticksize;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double Fmalast = iMA(NULL,0,Fperiod,Fshift,Fmethod,Fapplied,2);
double Fmanow = iMA(NULL,0,Fperiod,Fshift,Fmethod,Fapplied,1);
double Smalast = iMA(NULL,0,Speriod,Sshift,Smethod,Sapplied,2);
double Smanow = iMA(NULL,0,Speriod,Sshift,Smethod,Sapplied,1);
if (Fmalast<Smalast && Fmanow>Smanow)
if (OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-(StopLoss*t),Ask+(TakeProfit*t),NULL,magic,0,Blue) ;
if (Fmalast>Smalast && Fmanow<Smanow)
if (OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+(StopLoss *t),Bid-(TakeProfit*t),NULL,magic,0,Red);
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
}
//+------------------------------------------------------------------+
عزالدين رمال
11-10-2016, 07:09 PM
انا عندي ليك سؤال
لو جبت اكسبير فاشل واسقطت عليه فكرة ناجحة يعني الاستراتيجية
السؤال من حقي ادعي الملكية بتاعت الاكسبيرت بعد التغيير والا لا يعتبر تزوير
اسلام العوامى
12-10-2016, 09:44 AM
انا عندي ليك سؤال
لو جبت اكسبير فاشل واسقطت عليه فكرة ناجحة يعني الاستراتيجية
السؤال من حقي ادعي الملكية بتاعت الاكسبيرت بعد التغيير والا لا يعتبر تزوير
،،،للاجابة عن ذلك يجب معرفة المقصود باكسبيرت فاشل اسقطت عليه فكرة ناجحة ، هل قمت بالتعديل في كود الاكسبيرت ام قمت بتعديل الاعدادات ، ام تعديل بتغيير طريقة العمل ونسبة التعديل في الكود البرمجي ، وفي كل الاحوال لايجوز اداعاء ملكية شئ ليس لك،،،
عزالدين رمال
12-10-2016, 04:35 PM
انا اشكرك سيدي وهذه محاولة اكسبير مركز الثقل لكنني لم اكتبها كلها بل ركبتها من عدت اكسبيرات لاني لا اجيد استخدام لوحة المفاتيح فارجو ان تعطيني رايك في مدى استيعابي للدورو mql4 نصفها كتابة والنصف كوبي كولي انا لا ادعي ان الاكسبرت لي هذا تمرين فقط
عزالدين رمال
30-10-2016, 01:26 PM
الظاهر مافيش حد هنا
اسلام العوامى
31-10-2016, 12:14 AM
انا اشكرك سيدي وهذه محاولة اكسبير مركز الثقل لكنني لم اكتبها كلها بل ركبتها من عدت اكسبيرات لاني لا اجيد استخدام لوحة المفاتيح فارجو ان تعطيني رايك في مدى استيعابي للدورو mql4 نصفها كتابة والنصف كوبي كولي انا لا ادعي ان الاكسبرت لي هذا تمرين فقط
،،،اهلا بك اخي الفاضل ، محاولة جيدة واري انك قمت باضافة الموفينج افريج ليتم الدخول عن طريق وجود الموفينج اعلي او اسفل مؤشر مركز الثقل ، استمر علي هذا الاداء وباذن الله سوف تستطيع برمجة اي فكرة تريدها بسهولة،،،
،،،تحياتي،،،
ميدو تانجو
10-11-2016, 08:52 AM
السلام عليكم
استاذ اسلام اولا اشكرك على ردودك وحرصك على نشر العلم .. زادك الله من فضله
لدي استفسار اذا سمحت لي :
اريد عمل اكسبرت اذا تحقق شرط معين يفتح صفقة بلوت معين وليكن 0.01 وهدف 50 نقطة ولكن اذا تحرك السعر في اتجاه الهدف 10 نقاط اي حقق ربح 10 نقاط يفتح صفقة اخرى بلوت مضاعف ويصبح 0.02 ثم اذا تحرك 10 نقاط اخرى يفتح بلوت عادي 0.01 ويستمر على اللوت العادي الى ان تقفل الصفقة الأولى وتحقيق 50 نقطة ربح
حاولت كثيرا ولكن عجزت عن عملها ولا احصل الى النتيجة الضبوطة فلجأت الى حضرتك لكي تساعدني
وشكرا جزيلا
khaled16661
11-11-2016, 02:48 AM
انا عندي سوال انا اعمل حاليا على اكسبريت الاخبار ولكن في بعض المصطلحات لم افهمها لو يتم شرحها مع امثلة
lot - stop loss -take profi كلهم مفهوم لكن traling distance - magic - limit level - traling start كلهم غير مفهوم بدي شرح مع امثلة لو سمحة لانني اعمل عليه وقت الاخبار
http://www.fx-arabia.com/vb/uploaded/18039_11478821260.png http://www.fx-arabia.com/vb/uploaded/18039_11478821260.png وهذا الرابط حتى تكون مفهومة اكثر
وهذا شرح للاكسبريت بالغة الإنكليزية لكنني لم افهم بعضها
Type_OP - selection of STOP or LIMIT orders;
Lot - lot;
LimitLevel - the distance from the price for placing pending orders;
StopLoss - stop loss;
TakeProfit - take profit;
TrailStart - profit in points to activate trailing stop;
TrailDistance - trailing stop distance;
Magic - the number for the EA to recognize its own positions
waddah
14-11-2016, 12:53 PM
السلام عليكم
أرجو شرح كيفية عمل Dashboard (إكسبرت وليس مؤشر )
مثلا Dashboard لمؤشر RSI يكتب بشكل عمودي الزوج وقيمة ال RSI ( أو سهم أخضر ان كان RSI تحت 50 و أحمر بالعكس )
مع جزيل الشكر .... بصراحة المشكلة عندي كيف أربط بين مصفوفة الأزواج ومصفوفة قيم RSI
اسلام العوامى
14-11-2016, 03:01 PM
السلام عليكم
أرجو شرح كيفية عمل Dashboard (إكسبرت وليس مؤشر )
مثلا Dashboard لمؤشر RSI يكتب بشكل عمودي الزوج وقيمة ال RSI ( أو سهم أخضر ان كان RSI تحت 50 و أحمر بالعكس )
مع جزيل الشكر .... بصراحة المشكلة عندي كيف أربط بين مصفوفة الأزواج ومصفوفة قيم RSI
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يمكن عمل هذا البورد بأكثر من طريقة ومرفق مثال سريع علي بورد لعدد 3 تايم فريم لمؤشر RSI،،،
،،،تحياتي،،،
waddah
14-11-2016, 03:33 PM
الشكر الجزيل للرد السريع .....
لكن ما أبحث عنه بالعكس ...تايم فريم واحد لمجموعة من الأزواج 20 زوج .....بالطريقة المذكورة بالملف المرفق سيصبح الإكسبرت أو المؤشر ثقيل جدا
كيف أفعل ذلك باستخدام المصفوفات مصفوفة RSI + مصفوفة الأزواج كي يظهر كالتالي : الزوج مع قيمة ال RSI بجانبه كالتالي :
EURUSD 56
GBPUSD 44
USDCHF 71
-----
-----
-----
-----
nourhan20
05-12-2016, 01:03 PM
هل يمكن عمل نطام ادارة رأس مال يعتمد على نسبة الهامش الحر وتحديد اللوت المناسب على اساس نوع الحساب بمعنى ان لو الاكسبيرت اشتغل على حساب ميكرو يفتح صفقة بالنسبة المحددة اللى هى مثلا 1.00 ونفس النسبة لو على حساب ستاندر تفتح صفقة 0.01 .. بهدف تخطي مشكلة نوع الحساب ؟؟؟
اسلام العوامى
06-12-2016, 11:56 AM
هل يمكن عمل نطام ادارة رأس مال يعتمد على نسبة الهامش الحر وتحديد اللوت المناسب على اساس نوع الحساب بمعنى ان لو الاكسبيرت اشتغل على حساب ميكرو يفتح صفقة بالنسبة المحددة اللى هى مثلا 1.00 ونفس النسبة لو على حساب ستاندر تفتح صفقة 0.01 .. بهدف تخطي مشكلة نوع الحساب ؟؟؟
،،،نعم يمكن عمل ذلك والكود موجود بالفعل علي الرابط التالي،،،
كبسولات برمجية - طريقة كتابة كود ادارة رأس المال (http://www.fx-arabia.com/vb/showthread.php?t=54929)
sara ali
20-01-2017, 03:57 PM
السلام عليكم ورحمه الله
اهلا فيكم
اسمي ساره وهذه اول تجربه لي ببرمجة الاكسبريت
حاولت عمله لكن هناك اخطاء ولم يعمل لي باك تيست فارجوا منكم ارشادي لكي اتعلم
فكرتي هي انه يشتري عند تقاطع موفينج 5 مع 25 للاعلى
ويغلق الصفقه عندما يعطعها للاسفل والعكس صحيح للبيع
اسلام العوامى
21-01-2017, 10:55 AM
السلام عليكم ورحمه الله
اهلا فيكم
اسمي ساره وهذه اول تجربه لي ببرمجة الاكسبريت
حاولت عمله لكن هناك اخطاء ولم يعمل لي باك تيست فارجوا منكم ارشادي لكي اتعلم
فكرتي هي انه يشتري عند تقاطع موفينج 5 مع 25 للاعلى
ويغلق الصفقه عندما يعطعها للاسفل والعكس صحيح للبيع
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بكي الاخت الفاضلة ، المحاولة جيدة ولكن يجب ان تكون علي دراية وفهم ومارأيته للاسف في الاكسبيرت الذي ارفقتيه هو قص ولصق لاكواد مختلفة بدون فهم صحيح للأسس ، ونصيحتي هي ان تقومي بمراجعة فيديوهات دورة البرمجة الاولي للتعرف علي الاساسيات وقمت ايضا بتصحيح اخطاء الاكسبيرت لتقومي بالمقارنة بينها وبين النسخة السابقة للتعرف علي الاخطاء وطريقة علاجها،،،
دورة تعليم البرمجة الاحترافية بلغة mql4
(http://www.fx-arabia.com/vb/showthread.php?t=34301)
،،،تحياتي،،،
sara ali
21-01-2017, 02:57 PM
السلام عليكم ورحمه الله وبركاته
شكرا لك اخي اسلام على تجاوبك معي
مثل ما قلت بالضبط انا اعتمدت على القص واللصق مع انني ما كنت اعرف وين احط الاكواد
يوم عملت للاكسبريت باك تيست ما اشتغل ليه
والاكسبريت اللي عدلته لي عمل باك تيست لكن ما عطاني نتائج ليه
انا ودي افهم
وشكرا لك مره اخرى
waddah
21-01-2017, 03:26 PM
السلام عليكم :
ممكن حل للنقطة التالية :
في بداية الإكسبرت يضع أمرين معلقين باي ستوب و أمرين معلقين سيل ستوب (عند مسافات محددة ) و يحدد ستوب وتيك بروفيت لكل من صفقات البيع والشراء بحيث يكون ستوب البيع هو هدف الشراء وبالعكس ( لهذا الحد لا توجد مشكلة بالبرمجة )
المشكلة :
عند تفعل أمر معلق باي ستوب مثلا يضيف أمرين معلقين سيل ستوب (عند نفس سعر أوامر السيل السابقة ) وبالعكس - لكن حجم اللوت للصفقات المعلقة الجديدة = حجم الصفقات التي تفعلت * 2
وتستمر العملية حتى الوصول للتيك أو الستوب ....
فكرة : دالة تعيد عدد الأوامر المعلقة عند سعر معين ودالة تعيد مجموع لوتات الأوامر التي تفعلت عند سعر معين
waddah
01-02-2017, 07:09 PM
أستاذ إسلام ....
ممكن المساعدة في كود لجعل Label أو شكل مستطيل يبدأ Xdistance له بعد خط chart Shift برقم معين .... هل يمكن ذلك ؟
اسلام العوامى
04-02-2017, 11:55 AM
أستاذ إسلام ....
ممكن المساعدة في كود لجعل Label أو شكل مستطيل يبدأ Xdistance له بعد خط chart Shift برقم معين .... هل يمكن ذلك ؟
،،،اهلا بك اخي الفاضل ، لا يمكن فعل ذلك ولكن هناك طريقة للتحايل علي هذا القصور عن طريق عمل تمبلت وحفظه ثم استدعائه برمجيا عن طريق ChartApplyTemplate ،،،
،،،تحياتي،،،
السلام عليكم اخي الحبب اسلام
كان لدي طلب وهو انا مبرمج ولكن php وكنت احتاج
الى ورقة او كتاب الكتروني يشرح الدوال الموجوده والوظائف لـ MQL4 انجاز للوقت وانا لا اريد متابعة قائمة المساعدات
الخاصه بهذا البرنامج اعرف انها جيده ولكن لا يوجد لدي الوقت للكتابعه فانا اريد ملخص بحيث
بحيث يمكنني الدخول فيما ينقصني فقط ولا انتظر الدروس التى اعرفها مسبقا بالاضافه
اني في حالة الحاجه الى شيئ معين اقوم بعمله على وجه السرعه وانتهى الموضوع
واذا يوجد لديك بعض الاكسربيرتات والاسكربتات المفتوحه لاخر ما توصلت اليه يكون ممتاز جدا
فانت تعرف هذه الامور تقرب المسافه جدا وكل الشكر والتقدير لك اخي الكريم
اسلام العوامى
05-02-2017, 09:35 AM
السلام عليكم اخي الحبب اسلام
كان لدي طلب وهو انا مبرمج ولكن php وكنت احتاج
الى ورقة او كتاب الكتروني يشرح الدوال الموجوده والوظائف لـ MQL4 انجاز للوقت وانا لا اريد متابعة قائمة المساعدات
الخاصه بهذا البرنامج اعرف انها جيده ولكن لا يوجد لدي الوقت للكتابعه فانا اريد ملخص بحيث
بحيث يمكنني الدخول فيما ينقصني فقط ولا انتظر الدروس التى اعرفها مسبقا بالاضافه
اني في حالة الحاجه الى شيئ معين اقوم بعمله على وجه السرعه وانتهى الموضوع
واذا يوجد لديك بعض الاكسربيرتات والاسكربتات المفتوحه لاخر ما توصلت اليه يكون ممتاز جدا
فانت تعرف هذه الامور تقرب المسافه جدا وكل الشكر والتقدير لك اخي الكريم
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، للاسف لايوجد الان سوي فيديوهات دورة البرمجة ولكن جاري عمل شئ مشابه سيكون جاهز قريبا باذن الله ، ويمكن ان تسأل عن اي دالة تريدها وسأقوم بوضع الشرح الخاص بها،،،
،،،بالنسبة للاكواد المفتوحة فمكتبة موقع mql5 لايوجد افضل منها في هذا المجال،،،
،،،تحياتي،،،
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، للاسف لايوجد الان سوي فيديوهات دورة البرمجة ولكن جاري عمل شئ مشابه سيكون جاهز قريبا باذن الله ، ويمكن ان تسأل عن اي دالة تريدها وسأقوم بوضع الشرح الخاص بها،،،
،،،بالنسبة للاكواد المفتوحة فمكتبة موقع mql5 لايوجد افضل منها في هذا المجال،،،
،،،تحياتي،،،
جزاك الله كل خير اخي اسلام وجعله في ميزان حنساتكم جميعا ومقدر لكم جهودكم وهنا سوف ابدأ طلبي لك
سوف اقوم بإرفاق التالي شارت لعمليه الدخول والخروج وايضا اكسبيرت قمت ببرمجته والاعلان عن المتغيرات سابقا لكني لم اكمله بسبب انشغالي جدا الان
وايضا بسبب بعض الدوال التى لم اكن اعرف عنها شيء فهيا جديده بالسبه لي كمبرمج php ولكن لعله خير ونستفيد منك ان شاء الله ندخل صلب الموضوع
------------------------------------------------------------------
كنت قد كلمتك من قبل عن بعض الدوال وطلبت مني ان اسأل ولكني سوف اطلب منك
كود لهذا الامر مثلا :-
الاكسبيرت يكون معلن فيه بامر Extern عن الاتي بحيث يمكن للمستخدم ادخال كل قيمه كما يريد للموجود بالداخل
وهو كالاتي :-
1- مفينج افاريج 1 وقيمه اي قيم ما تفرق ولكن سوف يكون داخل البولينجر
2- مفينج افاريج 2 وقيمه أي قيم ما تفرق ولكنها اعلى من سابقه ولكن هذا راجع لمستخدم الاكسبيرت ايضا
3- مؤشر البولينجر باند والاعدادات كما يريد المستخدم عادي ما تفرق
4- مؤشر الاستوكيستك والاعدادات كما يريد المستخدم عادي ما تفرق
----------------------------------
كل اللي فوق هذا ما عندي مشكله فيه ولكن القادم هو الاهم :-
1- مطلوب عمل داله بحيث اذا تحقق الشرط الخاص SELL يقوم الاكسبيرت بعملSELL مع اغلاق الشمعه المحدده على الشرط ويكون امر واحد فقط ولا يفتح الا اذا انتهي الامر الاول .
2- مطلوب عمل دالة بحيث اذا تحقق الشرط الخاص BUY يقوم الاكسبيرت بعمل BUY مع اغلاق الشمعه المحدده على الشرط ويكون امر واحد فقط ولا يفتح الا اذا انتهى الامر الاول .
------------------------------------
نيجي لأهم المهم وهذا لب الموضوع طيب ايه هيا الشروط المطلوب توافرها جميل نخش ع المهم :
1- أمر BUY اذا كانت الشمعة (فتحت اسفل وخارج حدود البولينجر وايضا أغلقت خارج البولينجر) + اسفل حدود مؤشر المفينج الصغير المدخل قيمه من قبل وهوه ع الشارت بالاحمر + مؤشر المفيتج
الثاني وهو صاحب القيم الاكبر المدخل سابقا موجود أعلى كل هؤلاء ومعلم ع الشارت باللون السماوي + تقاطع الاستوكيستك اسفل خط الـ 20 هنا ينفذا الامر .
2- أمر SELL اذا كانت الشمعة (فتحت أعلى وخارج حدود البولينجر وأيضا اغلقت خارج البولينجر) + أعلى حدود مؤشر الموفينج الصغير المدخل قيمه من قبل وهو ع الشارت بالاحمر + مؤشر
الموفينج الثاني وهو صاحب القيم الاكبر المدخل مسبقا أسفل كل هؤلاء + تقاطع الاستوكيستك أعلى خط الـ 80 هنا ينفذ الامر
مرفق صورتين لعملية البيع والشراء وايضا نموذج تصميم الاكسبيرت من حيث المدخلات وهو مفتوح ايضا وكل الشكر والتقدير لكم
ولو امكن بعد التنفيذ تعطيني الملف مفتوح المصدر ولا تقلق فانا من المتعاونين
وان شاء الله راح نجتهد لنساعد الكل .
shivaa
07-02-2017, 08:26 PM
السلام عليكم
ممكن داله اذا تم اغلاق الصفقه يدوي او بخساره او مكسب فى شمعه الحاليه
لا يدخل الا اذا فتح شمعه جديد
ان شغال على الرينكو
ممكن احسب نسبه من حجم الشمعه للدخول بصفقه الرجاء مثال عن ذالك
السلام عليكم اخي اسلام وعلى كل القائمين على هذا المنتدى المحترم
كان لدي سؤال اذا سمحت
لدي هذا الكود وهو معادله توضح اذا كان سعر البيع يساوي اخر صفقه يقوم بعمل عدة أوامر
Bid==(LastOrder("Price",OP_SELL)
ولكن المشكله عدم الدقة بسبب الاسبريد
فهل من الممكن طرح الاسبريد من السعر الحالي واقارنه بسعر الصفقه
بمعني محتاج اقوله في الشرط لو لقيت Bid-Spred == سعر الصفقه نفذ
محتاج معادلة طرح الاسبريد من سعر البيع الحالي ارجو ان تكون وضحت الفكره
وكل الشكر والتقدير لشخصكم الكريم
اسلام العوامى
07-04-2017, 02:56 AM
السلام عليكم اخي اسلام وعلى كل القائمين على هذا المنتدى المحترم
كان لدي سؤال اذا سمحت
لدي هذا الكود وهو معادله توضح اذا كان سعر البيع يساوي اخر صفقه يقوم بعمل عدة أوامر
Bid==(LastOrder("Price",OP_SELL)ولكن المشكله عدم الدقة بسبب الاسبريد
فهل من الممكن طرح الاسبريد من السعر الحالي واقارنه بسعر الصفقه
بمعني محتاج اقوله في الشرط لو لقيت Bid-Spred == سعر الصفقه نفذ
محتاج معادلة طرح الاسبريد من سعر البيع الحالي ارجو ان تكون وضحت الفكره
وكل الشكر والتقدير لشخصكم الكريم
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، قيمة الاسبريد هي عبارة عن الفرق بين سعر الشراء Ask وسعر البيع Bid ، اذا يمكن صياغة المعادلة كالاتي،،،
Bid-(Ask-Bid)==(LastOrder("Price",OP_SELL)،،،تحياتي،،،
ola Ahmed 93
19-04-2017, 10:56 AM
تسلم اخى الحبيب
وبالتوفيق دائما
amr amrou
25-05-2017, 11:05 PM
أريد برمجة إكسبرت يقوم بالتالي
عند وضعه يقوم بفتح صفقة شراء في الشمعة الحالية و عند إغلاق الشمعة الحالية و إفتتاح شمعة جديدة يقوم بفتح صفقة بيع و عند إفتتاح شمعة جدية يفتح شراء
و هكذا كل شمعة صفقة جديدة و الصفقات عكس بعض مع إختلاف في اللوت أيضا كل صفقة جديدة يكوت اللوت الخاص بها أكبر من الصفقة السابقة
أعرف أن أمر فتح الصفقات هو
OrderSend(string symbol, int cmd, double volume, double price,int slippage, double stoploss,double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=clrNONE);
لكن كيف أطبق الشروط المذكورة عليه في شكل حلقة أو وضيفة أو دالة
أرجو ذكر ذالك مع شرح بالعربي أمام السطور إن أمكن ذالك
و الله يجعل مساعدتك في ميزان حسناتك
اسلام العوامى
26-05-2017, 01:41 AM
أريد برمجة إكسبرت يقوم بالتالي
عند وضعه يقوم بفتح صفقة شراء في الشمعة الحالية و عند إغلاق الشمعة الحالية و إفتتاح شمعة جديدة يقوم بفتح صفقة بيع و عند إفتتاح شمعة جدية يفتح شراء
و هكذا كل شمعة صفقة جديدة و الصفقات عكس بعض مع إختلاف في اللوت أيضا كل صفقة جديدة يكوت اللوت الخاص بها أكبر من الصفقة السابقة
أعرف أن أمر فتح الصفقات هو
OrderSend(string symbol, int cmd, double volume, double price,int slippage, double stoploss,double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=clrNONE);
لكن كيف أطبق الشروط المذكورة عليه في شكل حلقة أو وضيفة أو دالة
أرجو ذكر ذالك مع شرح بالعربي أمام السطور إن أمكن ذالك
و الله يجعل مساعدتك في ميزان حسناتك
،،،اهلا بك اخي الفاضل ، اولا يتم حجز هذه المتغيرات،،،
datetime time0;
bool x;
double NewLot,LastLot;
،،،ثم وضع الكود التالي في OnTick،،،
if(time0!=Time[0]){
if(x==-1){
NewLot = LastLot+0.01;
bool b = OrderSend(Symbol(),OP_BUY,NewLot,Ask,0,0,0,"",Magicnumber,0,clrBlue);
LastLot = NewLot;
x=1;
}
if(x==1){
NewLot = LastLot+0.01;
bool b = OrderSend(Symbol(),OP_SELL,NewLot,Bid,0,0,0,"",Magicnumber,0,clrRed);
LastLot = NewLot;
x=-1;
}
time0=Time[0];
}
،،،والكود يبدأ بعمل فحص لقيمة المتغير time0 اذا كان لايساوي وقت الشمعة الحالية يتم الانتقال للسطر التالي والفائدة هو منع الاكسبيرت من تنفيذ باقي الاوامر الا عند افتتاح شمعة جديدة،،،
،،،بعد ذلك يتم فحص قيمة المتغير x اذا كان يساوي -1 فمعنى ذلك ان الصفقة السابقة كانت بيع فيتم فتح شراء واذا كانت تساوي 1 فيتم فتح بيع،،،
،،،بعد ذلك يتم اسناد قيمة اللوت السابق + الزيادة التي نريدها الى المتغير NewLot وفي هذا المثال وضعت الزيادة بمقدار 0.01 ثم يتم فتح الصفقة وتخزين قيمة اللوت الجديد في المتغير LastLot،،،
،،،في النهاية يتم اسناد وقت الشمعة الحالية للمتغير time0،،،
،،،تحياتي،،،
amr amrou
26-05-2017, 03:51 PM
،،،اهلا بك اخي الفاضل ، اولا يتم حجز هذه المتغيرات،،،
datetime time0;
bool x;
double NewLot,LastLot;
،،،ثم وضع الكود التالي في OnTick،،،
if(time0!=Time[0]){
if(x==-1){
NewLot = LastLot+0.01;
bool b = OrderSend(Symbol(),OP_BUY,NewLot,Ask,0,0,0,"",Magicnumber,0,clrBlue);
LastLot = NewLot;
x=1;
}
if(x==1){
NewLot = LastLot+0.01;
bool b = OrderSend(Symbol(),OP_SELL,NewLot,Bid,0,0,0,"",Magicnumber,0,clrRed);
LastLot = NewLot;
x=-1;
}
time0=Time[0];
}
،،،والكود يبدأ بعمل فحص لقيمة المتغير time0 اذا كان لايساوي وقت الشمعة الحالية يتم الانتقال للسطر التالي والفائدة هو منع الاكسبيرت من تنفيذ باقي الاوامر الا عند افتتاح شمعة جديدة،،،
،،،بعد ذلك يتم فحص قيمة المتغير x اذا كان يساوي -1 فمعنى ذلك ان الصفقة السابقة كانت بيع فيتم فتح شراء واذا كانت تساوي 1 فيتم فتح بيع،،،
،،،بعد ذلك يتم اسناد قيمة اللوت السابق + الزيادة التي نريدها الى المتغير NewLot وفي هذا المثال وضعت الزيادة بمقدار 0.01 ثم يتم فتح الصفقة وتخزين قيمة اللوت الجديد في المتغير LastLot،،،
،،،في النهاية يتم اسناد وقت الشمعة الحالية للمتغير time0،،،
،،،تحياتي،،،
شكرا جزيلا لك أخي إسلام
لقد تعلمت منك الكثير
خاصتا من فيدهات دورة mql4 الخاصة بك
amr amrou
26-05-2017, 05:44 PM
قمت بتجربت الإكسبرت
للأسف لا أدري لمذا يفتح صفقات البيع فقط
في البداية لم يكن يفتح أي صفقة إطلاقا
و عندما جربت أن أعطي للمتغير x قيمة إبتدائية سواءا كانت 1 أو -1 يفتح صفقات البيع فقط
الإكسبرت في المرفقات
amr amrou
26-05-2017, 06:29 PM
عندما قمت بإضهار قيم المتغيرات عن طريق الأمر
Comment
Comment("valeur X : " + x );
لمعرفة كيف تتحرك القيم و أين الخلل
وجد أن قيمة المتغير X هي السبب
حيث أنها تبقى true
أي أن قيمته تبقى 1 لهذا يفتح صفقات البيع فقط
رغم أنك وضعت أمر
x=-1;
في نهاية أمر البيع لكنه لا يتغير
https://www.fx-arabia.com/vb/uploaded/35639_11495812469.png (https://www.fx-arabia.com/vb)
https://www.fx-arabia.com/vb/uploaded/35639_11495812512.png (https://www.fx-arabia.com/vb)
amr amrou
26-05-2017, 07:35 PM
السلام عليكم
أستاذ إسلام
لقد وجدت الحل للمشكلة بعد عدت تجارب
وجدت أن المتغير x عرفته أنت في شكل
bool
و بعد ذالك أعطيته قيمة 1 و -1 و bool لا تقبل -1
بل تقبل 0 و 1
يعني أماأن نغير الأرقام إلى 0 و 1 أو نعرف x في شكل int و ليس bool
هذا الخطأ الأول
الخطأ الثاني
حتى لو غيرنا القيم ل 0 و 1 يبقى يفتح صفقات بيع فقط
لأنك لم تضف كلمة
else
في الشرط الثاني الخاص بالبيع
بعد قيامي بهذه التغييرات حلت المشكلة
amr amrou
26-05-2017, 10:59 PM
سؤال برمجي بسيط أخر من فضلك أخي إسلام
ماهو الكود الخاص بالقيام بإغلاق صفقة معينة و محددة عند تحقق شرط معين و محدد
مثلا
تم فتح صفقات يدويا
بعد ذالك وضعنا الأكسبرت
عند تحقق شرط معين
مثلا فتحنا صفقة شراء يدويا و تقاطع موفنج سريع مع موفنج بطيئ للأسفل فيقوم الأكسبرت بغلق صفقة الشراء عند تحقق هذا الشرط
أو مثلا فتحنا يدويا صفقة بيع و وصل تشبع سعري لمستوى معين في مؤشر ال RSI مثلا عندما يتحقق ذالك الشرط يقوم الأكسبرت بغلق صفقة البيع
أرجو وضع كود غلق الصفقات و إذا أمكن مثال أو شرح بسيط أمام الكود
اسلام العوامى
27-05-2017, 12:01 AM
سؤال برمجي بسيط أخر من فضلك أخي إسلام
ماهو الكود الخاص بالقيام بإغلاق صفقة معينة و محددة عند تحقق شرط معين و محدد
مثلا
تم فتح صفقات يدويا
بعد ذالك وضعنا الأكسبرت
عند تحقق شرط معين
مثلا فتحنا صفقة شراء يدويا و تقاطع موفنج سريع مع موفنج بطيئ للأسفل فيقوم الأكسبرت بغلق صفقة الشراء عند تحقق هذا الشرط
أو مثلا فتحنا يدويا صفقة بيع و وصل تشبع سعري لمستوى معين في مؤشر ال RSI مثلا عندما يتحقق ذالك الشرط يقوم الأكسبرت بغلق صفقة البيع
أرجو وضع كود غلق الصفقات و إذا أمكن مثال أو شرح بسيط أمام الكود
،،،اهلا بك اخي الفاضل ، يمكن عمل ذلك بأكثر من طريقة منها وضع شرط الاغلاق وبعد ذلك عمل For Loop لتحديد الصفقة المراد اغلاقها سواء شراء او بيع ثم استخدام امر الاغلاق،،،
bool OrderClose(
int ticket, // ticket
double lots, // volume
double price, // close price
int slippage, // slippage
color arrow_color // color
);
،،،تحياتي،،،
amr amrou
27-05-2017, 12:50 AM
،،،اهلا بك اخي الفاضل ، يمكن عمل ذلك بأكثر من طريقة منها وضع شرط الاغلاق وبعد ذلك عمل For Loop لتحديد الصفقة المراد اغلاقها سواء شراء او بيع ثم استخدام امر الاغلاق،،،
bool OrderClose(
int ticket, // ticket
double lots, // volume
double price, // close price
int slippage, // slippage
color arrow_color // color
);
،،،تحياتي،،،
اسف جدا أنا مبتدأ كثيير في البرمجة
لم أفهم جيدا
مثلا أريد أغلاق صفقة الشراء التي تم إفتتاحها يدويا عند وصول مستوى ال RSI إلى 75
وهذا الكود هنا
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderClose(ticket,lot,Ask,3,Red);
}
أولا في الخانة الأولى داخل أمر OrderClose فيها ticket من أين أجلب ال ticket ؟ و مذا أضع فيها و كيف يعرفها الأكسبرت ؟ مع العلم أن الصفقة تم فتحها يدويا
الخانة الثانية lot مذا أضع فيها ؟ الصفقات يتم فتحها يدويا بلوت عشوائي يعني غير معروف !!
الخانة الثالثة ASK في أمر إغلاق الصفقات نستخدم ASK فقط ولا نستخدم BID صحيح ؟
هل ممكن ترسل لي الحلقة For Loop كاملتا
أعرف أن الحلقة تكتب بهذا الشكل كمثال لكن لم أعرف تركيبها أو إستخدامها
for(int i = 0 , i < 10 , i++)
{
}
أرجو المساعدة
amr amrou
27-05-2017, 04:50 PM
اسف جدا أنا مبتدأ كثيير في البرمجة
لم أفهم جيدا
مثلا أريد أغلاق صفقة الشراء التي تم إفتتاحها يدويا عند وصول مستوى ال RSI إلى 75
وهذا الكود هنا
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderClose(ticket,lot,Ask,3,Red);
}
أولا في الخانة الأولى داخل أمر OrderClose فيها ticket من أين أجلب ال ticket ؟ و مذا أضع فيها و كيف يعرفها الأكسبرت ؟ مع العلم أن الصفقة تم فتحها يدويا
الخانة الثانية lot مذا أضع فيها ؟ الصفقات يتم فتحها يدويا بلوت عشوائي يعني غير معروف !!
الخانة الثالثة ASK في أمر إغلاق الصفقات نستخدم ASK فقط ولا نستخدم BID صحيح ؟
هل ممكن ترسل لي الحلقة For Loop كاملتا
أعرف أن الحلقة تكتب بهذا الشكل كمثال لكن لم أعرف تركيبها أو إستخدامها
for(int i = 0 , i < 10 , i++)
{
}
أرجو المساعدة
في السؤال السابق أعتقد يمكن إستخدام الأمر
OrderClose
أو
OrderModify أيضا أعتقد بتقريب الستوب فيه
لكن كيف يتم إستخدامه ؟ و كيف يعرف الأكسبرت ال ticket أو order ID
مع العلم أن الصفقات تم إفتتاحهم عشوائيا و يدويا
و الأكسبرت يجب أن يغلق نوع محدد من الصفقات على الشارت الموضوع فيه فقط
مثلا يغلق صفقات البيع إذا تحقق شرط معين في الشارت الموضوع فيه
و كيف يقوم الإكسبرت بفحص إذا فيه صفقات مفتوحة جديدة أم لا
amr amrou
28-05-2017, 12:14 AM
السلام عليكم إخي إسلام
هذا ما إستطعت كتابته إلى حد الأن في إنتضار إجابتك
( هذا أكسبرت لإغلاق صفقات البيع عند التقاطع للأعلى و إغلاق صفقات الشراء عند التقاطع للأسفل )
// تعريف بمتغيرات و مدخلات الموفنج السريع
extern string s1 = "faste MA setting " ; // faste MA setting
extern int FastMAperiod = 10 ; // Fast Period
extern int FastMAshift = 0 ; // Fast Shift
extern ENUM_MA_METHOD FastMAmethod = 0; // Fast Methode
extern ENUM_APPLIED_PRICE FastMAapllyto = 0; // Fast Applied to
// تعريف بمتغيرات و مدخلات الموفنج البطيئ
extern string s2 = "SLow MA setting " ; // SLow MA setting
extern int SLowMAperiod = 20 ; // SLow Period
extern int SLowMAshift = 0 ; // SLow Shift
extern ENUM_MA_METHOD SLowMAmethod = 0; // SLow Methode
extern ENUM_APPLIED_PRICE SLowMAapllyto = 0; // SLow Applied to
//extern string s3 = " money management " ; // money management
//extern int takeprofit = 40; // Take Profit
//extern int stoploss = 20; // STOP Loss
//extern double Lot = 0.01;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double FastMALast = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,2);
// هذا السطر لجب قيمة الموفنج السريع للشمعة 2 و تخزينها
double FastMANow = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,1);
// هذا السطر لجلب قيمة الموفنج السريع للشمعة 1 و تخزينها
double slowMALast = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,2);
// هذا السطر لجب قيمة الموفنج البطيئ للشمعة 2 و تخزينها
double slowMANow = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,1);
// هذا السطر لجلب قيمة الموفنج البطيئ للشمعة 1 و تخزينها
for(int i=0 ; i < OrdersTotal() ; i++ )
// هذا سطر هو حلقة التكرارية
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
// هذا السطر لإختيار الصفقة
if(OrderSymbol()==Symbol())
// هذا السطر لإختيار الصفقات التي مفتوحة على الشارت الموضوع عليه الأكسبرت
{
if(FastMALast<slowMALast && FastMANow>slowMANow)
// هذا شرط التقاطع للأسفل
{
// هذا المكان لوضع أمر الإغلاق
OrderModify
}
}
}
}
//+------------------------------------------------------------------+
السطور التي كتبتها مشروحة بالعربي داخل الكود
هذا ما إستطعت كتابته إلى حد الأن و لم أستطع الإكمال
الأن أعتقد يجب إستخدام أمر
OrderClose
أو
OrderModify
لكن كيف يمكننا ملئهم
الإكسبرت في المرفقات
amr amrou
31-05-2017, 04:42 PM
لقد قمت ببرمجت أكسبرت
كل شيئ مشروح بالعربية داخل الكود لكيفية البرمجة
أرجو الإطلاع على الكود و مراجعت صحته و إعطاء بعض النصائح
لأنني مبتدأ في البرمجة
// تعريف بمتغيرات و مدخلات الموفنج السريع
extern string s1 = "faste MA setting " ; // faste MA setting
extern int FastMAperiod = 10 ; // Fast Period
extern int FastMAshift = 0 ; // Fast Shift
extern ENUM_MA_METHOD FastMAmethod = 0; // Fast Methode
extern ENUM_APPLIED_PRICE FastMAapllyto = 0; // Fast Applied to
// تعريف بمتغيرات و مدخلات الموفنج البطيئ
extern string s2 = "SLow MA setting " ; // SLow MA setting
extern int SLowMAperiod = 20 ; // SLow Period
extern int SLowMAshift = 0 ; // SLow Shift
extern ENUM_MA_METHOD SLowMAmethod = 0; // SLow Methode
extern ENUM_APPLIED_PRICE SLowMAapllyto = 0; // SLow Applied to
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double FastMALast = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,2);
// هذا السطر لجب قيمة الموفنج السريع للشمعة 2 و تخزينها
double FastMANow = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,1);
// هذا السطر لجلب قيمة الموفنج السريع للشمعة 1 و تخزينها
double slowMALast = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,2);
// هذا السطر لجب قيمة الموفنج البطيئ للشمعة 2 و تخزينها
double slowMANow = iMA(NULL,0,FastMAperiod,FastMAshift,FastMAmethod,F astMAapllyto,1);
// هذا السطر لجلب قيمة الموفنج البطيئ للشمعة 1 و تخزينها
for(int i=OrdersTotal()-1 ; i >=0; i-- )
// هذا سطر هو حلقة التكرارية
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
// هذا السطر لإختيار و تحديد صفقة معينة
int ticket=OrderTicket();
// هذا السطر من أجل إمكانية تحديد قيمة الدالة أو الصفقة بدلالة تيكت
double lots=OrderLots();
// هذا السطر من أجل إمكانية تحديد قيمة الدالة أو الصفقة بدلالة اللوت
int type=OrderType();
// هذا السطر من أجل إمكانية تحديد قيمة الدالة أو الصفقة بدلالة نوع الصفقة , شراء أو بيع
if(OrderSymbol()==Symbol())
// هذا السطر لإختيار الصفقات التي مفتوحة على الشارت الموضوع عليه الأكسبرت
{
if(FastMALast<slowMALast && FastMANow>slowMANow)
// هذا شرط التقاطع للأسفل
// هذا الشرط يعني أن السعر في صعود
// هذا يعني أنه يجب غلق صفقات البيع
{
// هذا المكان لوضع أمر الإغلاق الصفقات
if(type==OP_SELL)
// هذا السطر هو أمر لإغلاق صفقة البيع
{
OrderClose(ticket,lots,Ask,3);
}
else if(type==OP_BUY && FastMALast>slowMALast && FastMANow<slowMANow)
// هذا السطر هو أمر لإغلاق صفقة الشراء في حالة لم يحدث الشرط الذي في الأعلى و حدث العكس
{
OrderClose(ticket,lots,Bid,3);
}
}
}
}
}
flora
02-06-2017, 11:47 PM
مساء الخير
عفوا انا لم اجد روابط المحاضرات و ارغب فعلا بتعلم اللغة هل يمكن افادتي لو سمحتم مع جزيل الشكر
اسلام العوامى
15-06-2017, 01:11 AM
مساء الخير
عفوا انا لم اجد روابط المحاضرات و ارغب فعلا بتعلم اللغة هل يمكن افادتي لو سمحتم مع جزيل الشكر
،،اهلا بك اخي الفاضل ، الدروس مثبته بقسم المؤشرات وموجودة بالمواضيع على الروابط التالية،،،
دورة تعليم البرمجة الاحترافية بلغة mql4 بالفيديو (https://www.fx-arabia.com/vb/showthread.php?t=34301)
دروس شرح البرمجة المتقدمة بلغة MQL4 (https://www.fx-arabia.com/vb/showthread.php?t=49096)
دورة تعليم البرمجة الثانية MQL5 (https://www.fx-arabia.com/vb/showthread.php?t=39479)
موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4 (https://www.fx-arabia.com/vb/showthread.php?t=34302)
،،،تحياتي،،،
gad ahmed
15-06-2017, 03:08 PM
السلام عليكم
كيف الحال باشمهندس اسلام
كل عام انتم بخير
وفقني الله عز وجل لفكرة هذا الاكسبرت وقمت بعمل كود مبدئي له
طبعا حضرتك ليس لي خبرة اكثر منحوالي خمسة اشهر من التعليم للبرمجة عن طريق اليوتيوب والاطلاع على اكواد الاكسبرتات المفتوحة ومحاولة عمل مثلها
فكرة الاكسبرت هي كالتالي
الاكسبرت يقوم باخذ بيانات هاي ولو شمعة الساعة السابعة صباحا وسعر افتتاح شمعة الساعة الثامنة صباحا
ثم يقوم بعمل بعض الحسابات باستخدام المعادلات الرياضية التي في الكود
ومن هذه المعادلات يتم استخرج سعر البيع والشراء والتيك بروفيت والستوب لوس لكل منهما
ويتم رسم خطوط افقية تبين مكان سعر البيع والشراء والتيك بروفيت والستوب لوس لكل منهما
وبعد ذلك يقوم الاكسبرت بالشراء او البيع عندما يصل السعر الى سعر الشراء او البيع الذي تم التوصل اليه من الحسابات السابقة
**********
طبعا حضرتك انا يعني بس عملت الكود الخاص بهذه المعدلات ورسم الخطوط
وبعد كده حاولت اعمل دوال الشراء والبيع والمضاعفات والاغلاق والفتح لم يوفقني الله عز وجل لذلك
وبصراحة لي اكثر من ثلاثة اسابيع وان احاول عمل ذلك ولم اتمكن لكني قمت بعمل اكثر من 11 كود اخر لتنفيذ الاكسبرت بالكامل بهم الكثير من الاخطاء وبصراحة لا داعي لان تراهم افضل
اتمنى ان تساعدني حضرتك ولك جزيل الشكر
***
الان المطلوب هو
** ما هي الدوال التي تجعل الاكسبرت يقوم بالاتي
الشراء عندما يصل السعر الى سعر الشراء مع وضع التيك بروفيت والستوب لوس المحددين مسبقا بواسطة الاكسبرت
اذا وصل الى التيك بروفيت اغلق الامر وقام بمسح جميع الخطوط من على الشارت وينتظر حتى الساعة الثامنة في اليوم التالي
اذا عكس السعر ووصل الى الستوب لوس يغلق امر الشراء وينتظر حتى يصل السعر الى سعر البيع المحدد فيفتح صفقة بيع بلوت مضاعف
وهكذا يستمر في المضاعفات الى ان يصل الى التيك بروفيت
فاذا وصل الى التيك بروفيت يغلق الامر على ربح ويمسح جميع الخطوط من على الشارت وينتظر حتى الساعة الثامنة في اليوم التالي
مرفق الكود
طبعا حضرتك ارفقت لك الكود الذي وفقني الله عز وجل لعمله بدون اخطاء
شكرا لحضرتك
جزاك الله خيرا
flora
16-06-2017, 12:06 AM
شكرا جزيلا اخي الكريم
ahmedamz
19-06-2017, 05:24 PM
السلام عليكم
امتلك استراتيجية جيدة مضاعفات هدجية على ولكن بحكم عملى لااستطيع متابعتها انا حاليا ببحث عن اكسبيرت مشابه لاقوم بالتعديل عليه فكل اللى بطلبه من الاخوة الكرام افادتي بلينك او فيديو شرح التعديل على الاكسبيرت واى برنامج اقدر اعدل من خلاله مع العلم ان لدي خبرة بالتداول ولكن ليس لدي اى خبرة ببرمجة الاكسبرتات تمام
اسلام العوامى
22-06-2017, 01:40 AM
السلام عليكم
امتلك استراتيجية جيدة مضاعفات هدجية على ولكن بحكم عملى لااستطيع متابعتها انا حاليا ببحث عن اكسبيرت مشابه لاقوم بالتعديل عليه فكل اللى بطلبه من الاخوة الكرام افادتي بلينك او فيديو شرح التعديل على الاكسبيرت واى برنامج اقدر اعدل من خلاله مع العلم ان لدي خبرة بالتداول ولكن ليس لدي اى خبرة ببرمجة الاكسبرتات تمام
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يمكنك مراجعة المواضيع الموجودة على الروابط التالية،،،
دورة تعليم البرمجة الاحترافية بلغة mql4 بالفيديو (https://www.fx-arabia.com/vb/showthread.php?t=34301)
دروس شرح البرمجة المتقدمة بلغة MQL4 (https://www.fx-arabia.com/vb/showthread.php?t=49096)
دورة تعليم البرمجة الثانية MQL5 (https://www.fx-arabia.com/vb/showthread.php?t=39479)
موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4 (https://www.fx-arabia.com/vb/showthread.php?t=34302)
،،،تحياتي،،،
sal_moh85
02-07-2017, 12:28 AM
سلام عليكم اخ اسلام
عندي موشر rsi حاصر قيم معينه
double rsi0=iRSI(Symbol(),0,14,0,0),
rsi1=iRSI(Symbol(),0,14,0,1);
if(rsi0>=30)CloseOrder(OP_SELL);//شرط إغلاق البيع
if(rsi1<30&&rsi1>20&&rsi0<=20)bool buy=true;//شرط فتح الشراء
طيب انا عاوز كود اني احصر كذى قيمه لي شراء وكذى قيمه للبيع
يعني
rsi1<30&&rsi1>20&&rsi0<=20)هي اول قيمه
rsi1<40&&rsi1>30&&rsi0<=30)هي ثاني قيمه
rsi1<50&&rsi1>40&&rsi0<=40)هي ثالث قيمه
طبعا اذا بدي استخدم بين كل قيمه وقيمه or يعني على هاد شكل
rsi1<40&&rsi1>30&&rsi0<=30)||rsi1<50&&rsi1>40&&rsi 0<=40)||(rsi1<30&&rsi1>20&&rsi0<=20)
لح يكون الكود طويل جدا بدي كود اختصر في هل شي
لانو عندي تقريبا 100 قيمه في حل برمجي لهل الشي وشكرا
اسلام العوامى
02-07-2017, 02:27 AM
سلام عليكم اخ اسلام
عندي موشر rsi حاصر قيم معينه
double rsi0=iRSI(Symbol(),0,14,0,0),
rsi1=iRSI(Symbol(),0,14,0,1);
if(rsi0>=30)CloseOrder(OP_SELL);//شرط إغلاق البيع
if(rsi1<30&&rsi1>20&&rsi0<=20)bool buy=true;//شرط فتح الشراء
طيب انا عاوز كود اني احصر كذى قيمه لي شراء وكذى قيمه للبيع
يعني
rsi1<30&&rsi1>20&&rsi0<=20)هي اول قيمه
rsi1<40&&rsi1>30&&rsi0<=30)هي ثاني قيمه
rsi1<50&&rsi1>40&&rsi0<=40)هي ثالث قيمه
طبعا اذا بدي استخدم بين كل قيمه وقيمه or يعني على هاد شكل
rsi1<40&&rsi1>30&&rsi0<=30)||rsi1<50&&rsi1>40&&rsi 0<=40)||(rsi1<30&&rsi1>20&&rsi0<=20)
لح يكون الكود طويل جدا بدي كود اختصر في هل شي
لانو عندي تقريبا 100 قيمه في حل برمجي لهل الشي وشكرا
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يجب كتابة كل القيم حيث ان القيم مختلفة ولايوجد بينها علاقة ثابته يمكن استخراج معادلة منها،،،
،،،تحياتي،،،
sal_moh85
06-07-2017, 12:44 PM
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،اهلا بك اخي الفاضل ، يجب كتابة كل القيم حيث ان القيم مختلفة ولايوجد بينها علاقة ثابته يمكن استخراج معادلة منها،،،
،،،تحياتي،،،
مشكور اخ اسلام طيب هلق اذا استخدمت مصفوفه لي لقيم بتزبط شي
اسلام العوامى
06-07-2017, 05:13 PM
مشكور اخ اسلام طيب هلق اذا استخدمت مصفوفه لي لقيم بتزبط شي
،،،يمكن ان تضع القيم بمصفوفة ثم تقوم بعمل حلقة تكرارية تقوم بالمرور على عناصر المصفوفة والبحث هل قيمة rsi الحالي تساوي قيمة اي عنصر من هذه العناصر وعند تحقق الشرط يقوم بالخروج من الحلقة التكرارية وتنفيذ الامر،،،
،،،تحياتي،،،
sal_moh85
07-07-2017, 12:31 AM
،،،يمكن ان تضع القيم بمصفوفة ثم تقوم بعمل حلقة تكرارية تقوم بالمرور على عناصر المصفوفة والبحث هل قيمة rsi الحالي تساوي قيمة اي عنصر من هذه العناصر وعند تحقق الشرط يقوم بالخروج من الحلقة التكرارية وتنفيذ الامر،،،
،،،تحياتي،،،
مشكور جدا جدا
Abdulhalim
11-08-2017, 03:06 AM
السلام عليكم
لو سمحت بدي كود للأكسبيرت :
للعمل فقط تجريبي
و للعمل لمدة محددة
وهل ممكن وضع كلمة سر للأكسبيرت ؟
وشكرا جزيلا
alisaberhanafy
18-08-2017, 06:03 AM
السلام عليكم ورحمة الله وبركاته
أولا أشكرك استاذي الحبيب على هذا الكورس الأكثر من رائع وربي يبارك فيك ، لكن كنت اريد الاستفسار عن كيفيه كتابه الكود اذا كنت اريد الاكسيبيرت يضع اوامر معلقه بكسر مناطق تعتمد على مؤشر خارجي مثلا للدعوم والمقاومات ، حقيقه هذه هو اكسيبيرتي الاول وودت أن اطلب النصح منك استاذي الحبيب .
alsuultaan
07-09-2017, 04:11 PM
السلام عليكم ورحمة الله وبركاته و
وكل عام وانتم بخير
استاذ اسلام
لدي سؤال بخصوص الدوال المثلثية مثل الساين والكوساين والتان فلناخذ التان على سبيل المثال
1 - تان (ظل) الزاوية يعني الضلع المقابل على الضلع المجاور للزاوية فمفروض ان قيمة التان للزاوية 45 تساوي 1 صحيح ولكن عندما استعمل الدالة ( MathTan(45 فانها تعطيني نتيحة مختلفة حيث تعطيني =1.61977510954 فاين الخلل وكيف يمكن معالجته والدالة والمثال مرفق بالملف الاول
2- ما هي الدالة لاستخراج معكوس التان فمثلا لدي قية ظل الزاوية ولنفرض = .1.2 واردت معرفة الزوايه فما هي الدالة التي استخدمها
3- لنفرض ان السعر وعلى فريم الساعه استغرق وقت مقداره 4 ساعات (وهو سيكون المحور السيني)ليرتفع مثلا من القيمة 1.19215 الى القيمة 1.198592 فكيف لي ان اكتب المعادلة لحساب قيمة الظل( التان) لتلك الزاوية بحيث احصل على نتائج دقيقة
ولكم جزيل الشكر استاذ
Rushdi
13-09-2017, 06:12 PM
مرحباً استاذ اسلام والاخوة المختصين. شكراً على الدورة والمجهود الرائع
برمجت اكسبرت بسيط من اجل التعليم حسب خطوات الاستاذ اسلام لكن بيطلعلي تنبيه TestGenerator: unmatched data error mismatched ولا يقوم الاكسبرت بفتح صفقات كما مبين في الصورة
https://www.fx-arabia.com/vb/uploaded/6474_11505315379.png
ارجوا من الاساتذة المساعدة
الكود
//+------------------------------------------------------------------+
//| Deneme.mq4 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double LotSize=0.1;
extern double StopLossPips=60;
extern double TakeProfitPips=60;
extern int MagicNumber = 55558;
extern int matimeframe = 240;
extern int maperiod = 8;
extern int mashift = 0;
extern int mamethod = 0;
extern int maappliedprice=0;
extern int sartimeframe=240;
extern double sarstep=0.02;
extern double sarmaximum=0.2;
extern int sarshift=0;
double t;
double buyt,buys,selt,sels;
double ma1 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maa ppliedprice,1);
double ma2 = iMA(NULL,matimeframe,maperiod,mashift,mamethod,maa ppliedprice,2);
double sar1 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,1);
double sar2 = iSAR (NULL,sartimeframe,sarstep,sarmaximum,2);
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//---
double tik=MarketInfo(Symbol(),MODE_TICKSIZE);
if(tik==0.00001 || 0.001)
t=tik*10;
else t=tik;
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
if(sar1 < ma1 && sar2< ma2)
if(OrdersTotal()==0)
if(StopLossPips==0)buys=0;
else buys=Ask -(StopLossPips*t);
if(TakeProfitPips==0)buyt=0;
else buyt=Ask+(TakeProfitPips*t);
bool x = OrderSend
(Symbol(),OP_BUY,LotSize,Ask,5,buys,buyt,NULL,Magi cNumber,Red);
if(sar1<ma1 && sar2<ma2)
if(OrdersTotal()==0)
if(StopLossPips==0)sels=0;
else sels=Bid+(StopLossPips*t);
if(TakeProfitPips==0)selt=0;
else selt=Ask -(TakeProfitPips*t);
bool x2 = OrderSend
(Symbol(),OP_SELL,LotSize,Bid,5,sels,selt,NULL,Mag icNumber,Red);
//---
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
/// Gets the error description
///
string GetErrorDescription(int iLastError)
{
string sErrorDescription="Unknown error";
switch(iLastError)
{
case 0: sErrorDescription = "No value"; break;
case 1: sErrorDescription = "No error"; break;
case 2: sErrorDescription = "Common error"; break;
case 3: sErrorDescription = "Invalid trade parameters"; break;
case 4: sErrorDescription = "Trade server is busy"; break;
case 5: sErrorDescription = "Old version of the client terminal"; break;
case 6: sErrorDescription = "No connection with trade server"; break;
case 7: sErrorDescription = "Not enough rights"; break;
case 8: sErrorDescription = "Too frequent requests"; break;
case 9: sErrorDescription = "Malfunctional trade operation (never returned error)"; break;
case 64: sErrorDescription = "Account disabled"; break;
case 65: sErrorDescription = "Invalid account"; break;
case 128: sErrorDescription = "Trade timeout"; break;
case 129: sErrorDescription = "Invalid price"; break;
case 130: sErrorDescription = "Invalid stops"; break;
case 131: sErrorDescription = "Invalid trade volume"; break;
case 132: sErrorDescription = "Market is closed"; break;
case 133: sErrorDescription = "Trade is disabled"; break;
case 134: sErrorDescription = "return value of 'OrderSelect' should be checked"; break;
case 135: sErrorDescription = "Price changed"; break;
case 136: sErrorDescription = "return value of 'OrderSend' should be checked"; break;
case 137: sErrorDescription = "Broker is busy (never returned error)"; break;
case 138: sErrorDescription = "Requote"; break;
case 139: sErrorDescription = "Order is locked"; break;
case 140: sErrorDescription = "Long positions only allowed"; break;
case 141: sErrorDescription = "Too many requests"; break;
case 145: sErrorDescription = "Modification denied because order too close to market"; break;
case 146: sErrorDescription = "Trade context is busy"; break;
case 147: sErrorDescription = "Expirations are denied by broker"; break;
case 148: sErrorDescription = "Amount of open and pending orders has reached the limit"; break;
case 4000: sErrorDescription = "No error (never generated code)"; break;
case 4001: sErrorDescription = "Wrong function pointer"; break;
case 4002: sErrorDescription = "Array index is out of range"; break;
case 4003: sErrorDescription = "No memory for function call stack"; break;
case 4004: sErrorDescription = "Recursive stack overflow"; break;
case 4005: sErrorDescription = "Not enough stack for parameter"; break;
case 4006: sErrorDescription = "No memory for parameter string"; break;
case 4007: sErrorDescription = "No memory for temp string"; break;
case 4008: sErrorDescription = "Not initialized string"; break;
case 4009: sErrorDescription = "Not initialized string in array"; break;
case 4010: sErrorDescription = "No memory for array\' string"; break;
case 4011: sErrorDescription = "Too long string"; break;
case 4012: sErrorDescription = "Remainder from zero divide"; break;
case 4013: sErrorDescription = "Zero divide"; break;
case 4014: sErrorDescription = "Unknown command"; break;
case 4015: sErrorDescription = "Wrong jump (never generated error)"; break;
case 4016: sErrorDescription = "Not initialized array"; break;
case 4017: sErrorDescription = "Dll calls are not allowed"; break;
case 4018: sErrorDescription = "Cannot load library"; break;
case 4019: sErrorDescription = "Cannot call function"; break;
case 4020: sErrorDescription = "Expert function calls are not allowed"; break;
case 4021: sErrorDescription = "Not enough memory for temp string returned from function"; break;
case 4022: sErrorDescription = "System is busy (never generated error)"; break;
case 4050: sErrorDescription = "Invalid function parameters count"; break;
case 4051: sErrorDescription = "Invalid function parameter value"; break;
case 4052: sErrorDescription = "String function internal error"; break;
case 4053: sErrorDescription = "Some array error"; break;
case 4054: sErrorDescription = "Incorrect series array using"; break;
case 4055: sErrorDescription = "Custom indicator error"; break;
case 4056: sErrorDescription = "Arrays are incompatible"; break;
case 4057: sErrorDescription = "Global variables processing error"; break;
case 4058: sErrorDescription = "Global variable not found"; break;
case 4059: sErrorDescription = "Function is not allowed in testing mode"; break;
case 4060: sErrorDescription = "Function is not confirmed"; break;
case 4061: sErrorDescription = "Send mail error"; break;
case 4062: sErrorDescription = "String parameter expected"; break;
case 4063: sErrorDescription = "Integer parameter expected"; break;
case 4064: sErrorDescription = "Double parameter expected"; break;
case 4065: sErrorDescription = "Array as parameter expected"; break;
case 4066: sErrorDescription = "Requested history data in update state"; break;
case 4099: sErrorDescription = "End of file"; break;
case 4100: sErrorDescription = "Some file error"; break;
case 4101: sErrorDescription = "Wrong file name"; break;
case 4102: sErrorDescription = "Too many opened files"; break;
case 4103: sErrorDescription = "Cannot open file"; break;
case 4104: sErrorDescription = "Incompatible access to a file"; break;
case 4105: sErrorDescription = "No order selected"; break;
case 4106: sErrorDescription = "Unknown symbol"; break;
case 4107: sErrorDescription = "Invalid price parameter for trade function"; break;
case 4108: sErrorDescription = "Invalid ticket"; break;
case 4109: sErrorDescription = "Trade is not allowed in the expert properties"; break;
case 4110: sErrorDescription = "Longs are not allowed in the expert properties"; break;
case 4111: sErrorDescription = "Shorts are not allowed in the expert properties"; break;
case 4200: sErrorDescription = "Object is already exist"; break;
case 4201: sErrorDescription = "Unknown object property"; break;
case 4202: sErrorDescription = "Object is not exist"; break;
case 4203: sErrorDescription = "Unknown object type"; break;
case 4204: sErrorDescription = "No object name"; break;
case 4205: sErrorDescription = "Object coordinates error"; break;
case 4206: sErrorDescription = "No specified subwindow"; break;
default: sErrorDescription = "Unknown error";
}
return(sErrorDescription);
}
//+------------------------------------------------------------------+
Rushdi
14-09-2017, 11:18 AM
حليت مشكلة TestGenerator: unmatched data error mismatched
بس لسة ما بيفتح صفقات الرجاء من المساعدة من الاساتذة وذوي الخبرة
mostafa zoz
30-10-2017, 08:59 PM
السلام عليكم من فضلكم اخواني اريد اجابه هل استطيع تحويل موشر عادي الي اكسبرت يعمل تلقائي اردو الرد وشكر
shivaa
06-12-2017, 04:30 PM
السلام عليكم
ممكن مساعد فى داله تحسب عدد الصفقات المفعله فى يوم ثم كتبتها فى ملف اكسل يكون اقسام الملف
تاريخ اليوم
العدد الصفقات
كام صفقه كسبانه
كام صفقه خاسره
كام صفقه شراء
كام صفقه بيع
اكون شاكر
محمود عبد الرازق
02-06-2018, 08:42 AM
الاستاذ اسلام العوامى
سؤال: orderstotal تعنى عدد الاوامر الموجوده على الشارت ام على جميع الشارتات الموجوده على الحساب؟؟؟
واذا كان عدد الاوامر الموجوده على الحساب كيف اجعلها تعنى عدد الاوامر الموجوده على الشارت فقط
وشكرا
shivaa
06-08-2018, 10:39 AM
السلام عليكم
عندى مؤشر يسجل قيم اسماء اسهم الموجوده على الشرط فى ملف بامتداد csv
اسم الملف يكون على اساس الشكل التالى
indti_snbr2_save2_EURUSD240_7_2_7_1.csv
البيانات الموجوده فيه هى عمودين
عمود الاول اسم السهم يعبر عن الاتجاه الترند والثانى هو قيمه السهم
حيث قيمت السهم = (0) فى حاله اتجاه صاعد (شراء)
قيمت السهم = (1) فى حاله اتجاه الهابط (بيع) تكون مثل التالى
1529915400 1
1529928000 1
1529928900 1
1530000000 1
1530003660 1
1530187200 0
1530190260 0
1530201600 0
1530202620 0
المطلوب المساعده فيه هو
كيف قراء اخر سطر وتخزينه فى متغير
اعرف انه تغير الاتجاه والدخول على اساس الخانه الثانيه
شراء او بيع
ممكن الداله كامله فيها ما اريد
مرفق الملف
اكون شاكر
محمود عبد الرازق
12-09-2018, 06:56 PM
اريد مؤشر يوضح المبلغ الذى تم ايداعه وسحبه
وشكرا
wizard_gsm
14-10-2019, 04:34 PM
السلام عليكم يا شباب
اولا مجهود لا تستوفية الكلمات و الحمد لله ربنا وفقني اني وصلت للمكان دا عشان اتعلم منه و بالفعل ليا استفسار انا بصدد عمل مؤشر و محتاج اني اعرف دالة تكوين الاسهم عن تحقق الشرط معين...فى حاجات قريبة من ما اريد فى الدرس السادس و السابع ...بس لو حد يدلني يبقي جزاكم الله خيرا
و انا بانتظاركم
و شكرا ليكم عبى المجهود دا و المهندس الي استقطع جزء و مجهود من وقتة عشان يوفر ماتريال غالية جد و طريقة شرح ربنا يجازية عنا خير
vBulletin® v3.8.8