على ماذا تدل الرموز الموجوده في جورنال الباك تست
المثلث الاصفر والدائره الرماديه الباهته؟؟هل معناه ان الاكسبيرت لم يعمل كما هومطلوب؟
Printable View
على ماذا تدل الرموز الموجوده في جورنال الباك تست
المثلث الاصفر والدائره الرماديه الباهته؟؟هل معناه ان الاكسبيرت لم يعمل كما هومطلوب؟
السلام عليكم
شباب كيف بعرف زجزاج عمل قمه او قاع
بحيث لادخل عكس زجزاج
مثل قام الزجزاج بعمل قمه هنا بدخل فقط في صفقات البيع وتجنب صفقات الشراء
واذا في صفقات مفتوحه بيع وعمل زجزاج قاع بخرج من كل صفقات شراء
عندي هذه الوظيفه ولكن احيانا يطلع لي خطاء رقم 4051 ومغناه ان هناك خطاء في قيمه البارميتر حاولت اكثر من مره ايجاد الخطاء لكن دون فائده
كود PHP:int ordersTotal(){int A=OrdersTotal();for(int i=OrdersTotal(); i>=0;i--){
if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){if (OrderMagicNumber() == Magicnumber && OrderSymbol()==Symbol()){
if(OrderType()==OP_BUY){A--;
Alert("توجد صفقة شراء مفتوحة من نوع شراء مباشر"," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
if(OrderType()==OP_SELL){A--;
Alert("توجد صفقة بيع مفتوحة من نوع بيع مباشر "," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
if(OrderType()==OP_BUYLIMIT){A--;
Alert(" توجد صفقة شراء معلق مفتوحة من نوع باي ليميت"," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
if(OrderType()==OP_SELLLIMIT){A--;
Alert("توجد صفقة بيع معلق مفتوحة من نوع سل ليميت"," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
if(OrderType()==OP_BUYSTOP){A--;
Alert("توجد صفقة شراء معلق مفتوحه من نوع باي ستوب"," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
if(OrderType()==OP_SELLSTOP){A--;
Alert("توجد صفقة بيع معلق مفتوحة من نوع سل ستوب"," - ",A," - ",OrderTicket(),"---Magic",OrderMagicNumber(),"---","Error",GetLastError());
Sleep(500);RefreshRates();Alert(GetLastError());}
}}}Alert("مجموع الصفقات المعلقه والمفعله =",OrdersTotal());return (OrdersTotal());}
لاحظت في اكسبيرت الاخ اسامه بارك الله فيه
هذا الكود وهو تقريبا من اجل المنصات ذات الخمسه ارقام على ما اظن
كيف يعنى اذا كان الاقام العشريه اقل من اربعه فالبوينت واحد بالمائه والديجتس 2 والا واحد من عشره الف والديجتس اربعه::::صراحه لم افهم ما يقصده؟
هل نحتاج لمثل هذا الكود في لغه البرمجه الحديثه من MQL4 ام انه تم حل مشكله المنصات ذات الاربعه ارقام والخمسه ارقام؟
وبدلا من ان يستخدم Digits or Point فهو يستخدم بدلا عنهم digits or point المفروض ان هذا خطاءكود PHP:if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
مثلا بدلا من ان يكتب stoploss*Point فهو يكتبه هكذا stoploss*point المفروض ان هذا خطاء
لاحظت في اكسبيرت الاخ اسامه بارك الله فيه
هذا الكود وهو تقريبا من اجل المنصات ذات الخمسه ارقام على ما اظن
كيف يعنى اذا كان الاقام العشريه اقل من اربعه فالبوينت واحد بالمائه والديجتس 2 والا واحد من عشره الف والديجتس اربعه::::صراحه لم افهم ما يقصده؟
هل نحتاج لمثل هذا الكود في لغه البرمجه الحديثه من MQL4 ام انه تم حل مشكله المنصات ذات الاربعه ارقام والخمسه ارقام؟
وبدلا من ان يستخدم Digits or Point فهو يستخدم بدلا عنهم digits or point المفروض ان هذا خطاءكود PHP:if(Digits<4)
{
point=0.01;
digits=2;
}
else
{
point=0.0001;
digits=4;
}
مثلا بدلا من ان يكتب stoploss*Point فهو يكتبه هكذا stoploss*point المفروض ان هذا خطاء
شباب لدي استفسار حول فتح الصفقات
مثل مو معروف اذا عملنا اكسبيرت ولم نضع له شرط تأكد انه عدد صفقات لايتجاوز صفقه ولا 2 سوف يبقى يفتح صفقات بشكل متكرر
ويجب علينا عندها انشاء ميثود تفحص عدد الصفقات المفتوحه للزوج المحدد من خلال الماجيك نمبر
هنا لدينا مشكله في حال رغبنا بدخول صفقه جديده على نفس الزوج في حال تكرر شرط الدخول
مثال :
اكسبيرت يدخل بكل اختراق لمستوى RSI او CCI او ستوكاستك او اي اشاره ثانيه تظهر لنا
مثل اختراق مستوى RSI 50 من الاسفل الى الاعلى الدخول بهدف 10 نقاط
وتم اختراق مستوى 60 والهدف السابق لم يتحقق هنا ايضاً يدخل بهدف 10 نقاط
اختراق مستوى 70 يدخل ايضا ... وهكذا
المهم في سؤالي كيف اجعل الاكسبيرت بمجرد تحقق الشروط يقوم بالدخول ولكن بدون تكرار الدخول بكل تك سواء كسر مستوى RSI
او اي مؤشر ثاني اعطاني اشاره دخول بدخل السوق ولكن بدون تكرار بفتح صفقات
شكرا لكم :eh_s(7):
وعليكم السلام ورحمة الله
على فكرة مؤشر الهايكن يعتمد افتتاح واغلاق الشمعة السابقة مع هاي واللو لشمعة 0 بهذا الكود
كود PHP:haOpen=(ExtOpenBuffer[i-1]+ExtCloseBuffer[i-1])/2; haClose=(open[i]+high[i]+low[i]+close[i])/4; haHigh=MathMax(high[i],MathMax(haOpen,haClose)); haLow=MathMin(low[i],MathMin(haOpen,haClose));
و يوجد طريقتين احدها من خلال اضافة الأكواد الأساسية للمؤشر بداخل كود الأكسبيرت والثانية استدعاء المؤشر وهي الأسهل وساشرح لك الأسهل فيها ،
هذا كود يمثل الشمعة الأسبوعية مع الشرط ويمكنك تكراره مع تعديل 10080 الى 1440 لليومي 240 اربع ساعات و 60 للساعة وتضع الشرط في الأخير اذا اتفقت
جميعها صعود او اتفقت هبوط لتنفيذ ماتريد بدلا من الكومنت .
كود PHP:double week0=iCustom(Symbol(),10080,"Heiken Ashi",0,1);double week1=iCustom(Symbol(),10080,"Heiken Ashi",1,1);double week2=iCustom(Symbol(),10080,"Heiken Ashi",2,1);double week3=iCustom(Symbol(),10080,"Heiken Ashi",3,1); if(week0<week1 && week2<week3) Comment("UP"); else if(week0>week1 && week2>week3) Comment("Down");
وعليكم السلام ، تفضل دالة تعود بقمم وقيعان الزجزاج وأكيد انت عارف ان آخر قاع أو آخر قمة لاتثبت الا بعد عدة شموعوالشرط سيكونكود PHP:double GetZigZag(int shift){ int num=0; for(int i=0;i<Bars;i++){ double zz=iCustom(Symbol(),0,"ZigZag.ex4",ExtDepth,ExtDeviation,ExtBackstep,0,i); if(zz!=0) num++; if(num==shift) return(zz); }return(0);}
كود PHP:if(GetZigZag(2)>GetZigZag(3) && GetZigZag(1)<GetZigZag(2)) // Buy
تجعل الشرط مقارنة بين افتتاح الشمعة تحت الخط واغلاقها فوق الخط لأي مؤشر شبيه لما ذكرت وتضيف شرط التنفيذ مرة واحدة في الشمعة اذا حققت الشرط .مثل هذا الكود سنقول اذا فتح تحت الخط 50 واغلق فوق الخط 50 اشتري .
سيكون بعد اضافة شرط صفقة لكل شمعةكود PHP:
double aRsi=iRSI(Symbol(),0,14,1,1);double bRsi=iRSI(Symbol(),0,14,0,1);
if(aRsi<50 && bRsi>50) // buy
في بداية الأكسبيرت مع المتغيرات ستضيفكود PHP:double aRsi=iRSI(Symbol(),0,14,1,1); double bRsi=iRSI(Symbol(),0,14,0,1);
if(T!=Time[0]){
T=Time[0]; if(aRsi<50 && bRsi>50) Comment("Buy");}
كود PHP:datetime T=0;
يعطيك الف عافية عزيزي ،، أرجو أن تتحملني قليلاً حتى أفهم بصورة جيدة .
شمعة 0 هي الشمعة الحالية
شمعة 1 التي تسبقها
شمعة 2 التي تسبق 1
شمعة 3 التي تسبق 2
أليس كذلك ? أرجو ان تصحح لي اذا كنت مخطأ
اذاً ، اذا اردت معرفة لون الشمعة الأسبوعية السابقة ( رقم 1 ) التي اغلقت هل هي صاعدة (بيضاء) أو هابطة(سوداء) لا بد أن أقارنها بالشمعة الأسبوعية رقم ( 2 ) أليس هذا هو المفترض ؟
في هذه الحالة أليس الكود التالي صحيحاً للتعرف على لون الشمعة الأسبوعية السابقة التي اغلقت ؟
كود:double week1=iCustom(Symbol(),10080,"Heiken Ashi",1,1);
double week2=iCustom(Symbol(),10080,"Heiken Ashi",2,1);
هل ما فهمته صحيح أم لا ؟كود:if(week1>week2) Comment("UP"); else if(week0>week1) Comment("Down");
شكراً لك .
كيف يمكن تحويل توقيت البيانات التاريخيه الى اي توقيت يريده المستخدم مثلا نزلت البيانات التاريخيه من شركه duckscopy وكما نعلم ان التوقيت للبيانات التاريخيه هو مع توقيت جرينتش يعني الافتتاح لها هو عند الساعه الخامسه عصر وليس الثانيه عشر منتصف الليل كما هو في شركه Fxdd.
كيف يمكن تقديم او تأخير توقيت البيانات التاريخيه بحيث تصبح الساعه الخامسه هي الثانيه عشر منتصف الليل.
تقريبا هذا الموضوع يلبي الطلب ولكن الموضوع ناقص شرح
اريد من الاخ اسامه ان يكمل هذا الموضوع كما وعدنا
شارت أي فريم زمني ويحدث نفسه تلقائيا
ممكن احدث كود ادارة راس المال
واين اضعة
هذه الدالة ستضعها في نهاية الأكسبيرت
هذا الشرط ستضعه في دالة OnTich() مع الشروطكود PHP:double LotManage()
{
double lotM = ceil(AccountFreeMargin() * Margin_Auto_Lots) / 1000 / 100;
if(lotM<MarketInfo(Symbol(),MODE_MINLOT))lotM=MarketInfo(Symbol(),MODE_MINLOT);
if(lotM>MarketInfo(Symbol(),MODE_MAXLOT))lotM=MarketInfo(Symbol(),MODE_MAXLOT);
return (NormalizeDouble(lotM,2));
}
كود PHP:if (Margin_Auto_Lots>0 ){NewLot=LotManage();}
هذا الكود ستضعة مع المتغيرات
كود PHP:extern int Margin_Auto_Lots=0;