السلام عليكم و رحمه الله و بركاته
اشكرك على سرعه الرد , و لكنى لا اعرف كيف ابرمج مؤشر فهل اطمع بعمل هذا المؤشر
Printable View
لقد كنت قد فتحت موضوع لتحويل مؤشر الى أكسبريت , و لقد قام الأستاذ عوض جزاه الله خيرا بتلبية طلبي , و بصنع هذا الأكسبريت , و لكن الأكسبريت كان فيه أخطاء , أولا : كان يفتح الصفقة بعد أغلاق أول شمعة من ظهور أشارة الشراء أو المبيع , وأنا أريده أن يقوم بفتح الصفقة عند أول فيرم يظهر به أشارة المبيع أو الشراء , لأن الأشارة تظهر عند بداية الفيرم و هي ثابتة لا تتغير ,
ثانيا : في بعض المرات عندما تظهر أشارة البيع أو الشراء و يغلق الفيرم يقوم الأكسبريت بفتح الكثير من الصفقات أكثر من 20 صفقة في نفس الوقت ...أرجو ألقاء نظرة على هذا الأكسبريت و محاولة تصليحه و شكرا لكم , وجزاه الله خيرا كل من يقوم بمساعدة الأخوة في هذا المنتدى ,,, وهذا هو رابط الموضوع لهذا المؤشر و الأكسبريت :
https://forum.arabictrader.com/t128943.html
السلام عليكم استاذ اسامه
قمت بالتعديل على اكسبيرت البارابولك سار التعليمى النسخه الاخيره بحيث انه يفتح صفقات بيع وشراء معلقه
على مسافة 50 نقطه وعند الباك تيست لم يفتح الا صفقه واحده فقط
فقمت بعمل اكسبيرت بسيط جديد ليقوم بهذه المهمه ولم يفتح اى صفقه وبعد الاطلاع على الاكواد لفتره طويله لم اعرف ما السبب ؟! على الرغم انه لا يوجد اخطاء فى الاكسبيرت
يرجى الاطلاع على الكود جزاك الله خيرا لعل نظرتك ذو الخبره تجد السبب بسرعه
وعليكم السلام ورحمة الله وبركاته
شروط إرسال الأمر غير صحيحه فما أنك أردت وضعها كأوامر معلقة
يجب أن تقوم بضبط الهدف والأستوب لوز وسعر وضع الصفقه بحيث إذا كان الأمر باي ستوب يجب أن يكون سعر الدخول أكبر من السعر الحالي وإذا كان الأمر سل ستوب يجب أن يكون السعر أقل من السعر الحالي
في الكود أنت جعلته بهذا الشكل
لو لاحظت خانة جورنال عند عمل باك تست سوف يعطي خطأ 130 وهذا يعني أن مكان وضع الأمر المعلق خاطئكود PHP:
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid+50*point,digits),3*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"MR.dollar EA",MagicNumber,0,Red);
فيجب أن تجعل الأمر المعلق سل ستوب bid-50 وليس bid+50 كما وضعتها أنت بما أنك تريد وضع الأمر الملعق على بعد 50 نقطة من السعر
أما الشراء فهو صحيح سوف يصبح ask+50
الجزء الثانيكود PHP:
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-50*point,digits),3*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"MR.dollar EA",MagicNumber,0,Red);
يجب أن تقوم بضبط الهدف والأستوب لوز بناء على السعر الجديد
ففي الشراء بدلا من
يجب أن تجعلهكود PHP:
f(StopLoss==0||HideSL==true){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0||HideTP==true){TP=0;}else{TP=Ask+TakeProfit*point;}
لأنك ستعتمد على سعر مكان وضع الأمر المعلق لتحديد الهدف والأستوب لوزكود PHP:
if(StopLoss==0||HideSL==true){SL=0;}else{SL=Ask+50*point-StopLoss*point;}
if(TakeProfit==0||HideTP==true){TP=0;}else{TP=Ask+50*point+TakeProfit*point;}
مرفق الإكسبرت بعد التعديل
اشكرك على تعاونك الدائم لاخواتك فى المنتدى
الموضوع باختصار هو اننى اريد ان ارسم زوايا جان او مروحه جان و معرفه الزويه التى يكون عليها الترند لانى كما قرات عن جان فان هزه الزوايا تمثل مقاومه و دعم للترند و مؤشر رسم ترند بزاويا الموجود فى الميتاتريدر لا يمكن الاعتماد عليه حيث انه عند عمل زووم تختلف قيمه الزاويه و لا تثبت فاننى اريد ان اححد نقطه و لتكن نقطه فى اتجاه صاعد و اعرف من خلالها ما هى الزاويه التى تنطلق منها مع كل شمعه و شكرا
لى طلب اذا تكرمت مستر دولار
اريد كود يفتح صفقة جديدة على كل شمعة تتفتح على الفريم الموجود علية الاكسبيرت بحيث انة لا يفتح غير صفقة واحدة فقط فى كل شمعة
متأسف استاذ اسامه تقلت على حضرتك بس فيه مشكله بسيطه بأذن الله
عايز الاكسبيرت عند تحقق الشروط يفتح ثلاثة صفقات باى ستوب على
مسافات محدده فكتبت الكود هكذا
وعند البيع بكتب هذا الكودكود PHP:
if(orderscnt()<1){
P=Close[1]+50*Point;
P2=Close[1]+40*Point;
P3=Close[1]+30*Point;
if(StopLoss==0){SL=0;}else{SL=P-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=P+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(P&&P2&&P3,digits),3*Q,SL,TP,"M",MagicNumber,0,Blue);
PlaySound("Alert.wav");GlobalVariableSet("Lots"+Symbol()+Period(),Lots);
Time0=Time[0];F=true;
}
}
وايضا بيظهرلى مشلكه فى الجورنال (130)كود PHP:
if(orderscnt()<1){
P=Close[1]-50*Point;
P2=Close[1]-40*Point;
P3=Close[1]-30*Point;
if(StopLoss==0){SL=0;}else{SL=P+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=P-TakeProfit*point;}
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(P&&P2,digits),3*Q,SL,TP,"MR.dollar EA",MagicNumber,0,Red);
PlaySound("Alert.wav");GlobalVariableSet("Lots"+Symbol()+Period(),Lots);
Time0=Time[0];F=true;
هل فيه غلط فى الكود
السلام عليكم ورحمة الله وبركاته
أخي العزيز
كيف ممكن برمجيا انقل مؤشر الستوك من الساعه الى النصف ساعه وتكون اشارة الساعه الحاليه في فريم النصف ساعه هي الاشاره (1)او الشمعه السابقه في فريم الساعه
وشكراً
اخى مستر دولار
كيف اخبر البرنامج انة اذا تفعل اى امر معلق يحذف جميع الاوامر الباقية
طريقة كتابتك للأمر بهذه الطريقة خاطئ
فما أنك تريد فتح ثلاث صفقات فيجب أن تضع ثلاثة أوامر OrderSend وتحدد سعر الدخول لكل أمر
سوف تجعله بهذا االشكل
ونفس الشيء بالنسبة للبيعكود PHP:
if(orderscnt()<1){
P=Close[1]+50*Point;
P2=Close[1]+40*Point;
P3=Close[1]+30*Point;
if(StopLoss==0){SL1=0;SL2=0;SL3=0;}else{SL1=P-StopLoss*point;SL2=P2-StopLoss*point;SL3=P3-StopLoss*point;}
if(TakeProfit==0){TP1=0;TP2=0;TP3=0;}else{TP1=P+TakeProfit*point;TP2=P2+TakeProfit*point;TP3=P3+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(P,digits),3*Q,SL1,TP1,"M",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(P2,digits),3*Q,SL2,TP2,"M",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(P3,digits),3*Q,SL3,TP3,"M",MagicNumber,0,Blue);
PlaySound("Alert.wav");GlobalVariableSet("Lots"+Symbol()+Period(),Lots);
Time0=Time[0];F=true;
}