النتائج 1 إلى 11 من 11
الموضوع: طلب كود برمجي من اصحاب الخبرة
- 18-06-2010, 09:47 PM #1
طلب كود برمجي من اصحاب الخبرة
بسم الله الرحمن الرحيم
والصلاه والسلام على اشرف المرسلين سيدنا محمد وعلى اله وصحبة وسلم
قمنا مؤخرا بعمل اكسبيرت وهو قيد التجربة مع اني ضعيف بتلك اللغة البرمجية ولكن تمت حل معظم المشاكل وتبقى فقرة بسيطة ان شاء الله لمن كان لدية خبرة في تلك اللغه وهي
وضع الاستوب لوز بناءا على شرط معين وعلى النحو التالي
لو مثلا دخلنا بيع يتم وضع الاستوب لوز اعلى من القمة السابقة بخمس نقاط والعكس في حالة الشراء
علما ان الشرط ايضا يتضمن تحريك الاستوب في حال تحرك الصفقة في الاتجاه حيث يكون هذا الشرط يتحرك بتكون القمم والقيعان الجديدة وممكن الاستعانة بمؤشر الزكزاك
رجاءا خاص من الادراة بعدم نقل الموضوع الا يوم الاحد للأهمية واليوم نهاية السوق
آخر تعديل بواسطة وسام النوباني ، 18-06-2010 الساعة 09:52 PM
- 19-06-2010, 03:24 PM #2
رد: طلب كود برمجي من اصحاب الخبرة
هل تريد إستخدام مؤشر الزيجزاج في إستخراج القمم والقيعان أم القمه إذا كان هاي شمعه أكبر من الشمعه السابقه والشمعه التاليه له والعكس في حال القاع
- 19-06-2010, 04:22 PM #3
- 19-06-2010, 04:38 PM #4
رد: طلب كود برمجي من اصحاب الخبرة
كود إستدعاء آخر هاي وآخر لو متكون بناء على مؤشر الزيجزاج
كود PHP:double zaghigh(){
for(int i=0;i<500;i++){
double zig=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
if(zig!=0&&(zig==Low[i])){
zig=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
break;
} }
for(int s=i;s<500;s++){
double zagbuy=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,s);
if(zagbuy!=0&&zagbuy==High[s]){
zagbuy=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,s);
break;
}}
return(zagbuy);
}
//////////////////*********************
double zaglow(){
for(int ii=0;ii<500;ii++){
double zigg=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,ii);
if(zigg!=0&&(zigg==High[ii])){
zigg=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,ii);
break;
}}
for(int d=ii;d<500;d++){
double zagsell=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,d);
if(zagsell!=0&&zagsell==Low[d]){
zagsell=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,d);
break;
}}
return(zagsell);
}
في دالة OrderSend
أمر الشراء
كود PHP:OrderSend(Symbol(),OP_BUY,Lots,Ask,3,zaglow(),TP,"MR.dollar EA",MagicNumber,0,Blue);
كود PHP:OrderSend(Symbol(),OP_SELL,Lots,Bid,3,zaghigh(),TP,"MR.dollar EA",MagicNumber,0,Red);
يجب أن تضع من ضمن الشروط أن يكون الهاي المتكون أكبر من السعر الحالي واللو المتكون أقل من السعر الحالي حتى يتم وضع الأستوب بطريقه صحيحه
- 19-06-2010, 05:39 PM #5
- 20-06-2010, 04:41 AM #6
رد: طلب كود برمجي من اصحاب الخبرة
يا اخي المشكله ما اتحلت
كيف اكتب امر التريلينج
مثلاً انا كتبت
extern int TrailingStop = High[3]
لجعل امر الوقف يتحرك على الشمعه السابقه الثالثه
لكن اعطاني خطء لان امر التريلنج لابد ان يقوم قيمه ثابته معرفه يتحرك بها الاستوب
كيف اكتب امر تريلنج يتحرك اعلى قمة معينه في حالة البيع و يتحرك اسفل قاع معين في حالة الشراء و لنفترض مثلاً ان القمة و القاع هذه هي قمة او قاع الشمعة السابقة ... و فيما بعد نعوض في القمم المعرفه بواسطة الزجزاج ما فيه مشكله .
يعني بأختصار انا اريد اكتب امر تحرك الاستوب لوز اعلى القمة السابقه في حالة البيع و اسفل القاع السابق في حالة الشراء
و اعتقد ان امر التريلنج ما راح ينفع و الله اعلم .... ساعدونا يا اهل الخبره
- 20-06-2010, 11:58 AM #7
رد: طلب كود برمجي من اصحاب الخبرة
بالتأكيد ليس هذا كود التريلينج ستوب ولا يمكن كتابته بهذا الشكل وليس هذا ما قصدته
أما بخصوص إن التريلينج ستوب ما ينفع فهو ينفع لكن تحتاج إلى مراجعة بعض الدروس البسيطه في البرمجه
هذا مثال بسيط على التريلينج ستوب العادي
كود PHP:void MoveTrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingProfit*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
return(0);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingProfit*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
لذلك ستجعله بهذا الشكل
كود PHP:void MoveTrailingStop()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(zaglow(),digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(zaglow(),Digits),OrderTakeProfit(),0,Blue);
}
}
else
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(zaghigh(),Digits)))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(zaghigh(),Digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
- 22-06-2010, 08:34 AM #8
رد: طلب كود برمجي من اصحاب الخبرة
و الله اخي MR.dollar انت ما قصرت
لكن شكل انا ما ني عارف اضع الكود بشكل صحيح
من اخر مشاركة وانا احاول و ما فيه فايدة
انا وضعت الاكسبرت في المرفق و هو يعتمد على تقطع متوسط 7 مع 14 للربع ساعة
في حالات معينه و ليس كل التقاطعات
و وضعت حالات الخروج من الصفه واحدة من 3 و بعدت تماماً عن موضوع التريلنج
حالات الخروج هي
التقاطع العكسي للموفينج او يكون الاغلاق اعلى او اقل من الموفنج 7 او يكون الاغلاق يساوي سعر فتح الصفقه
لكن للأسف ما تخرج الصفقه الا على الشرط الاول فقط
في المرفق الملف و نرجو منك التعديل عليه و اخبرنا ايه هي المشكله و نتشارك التدريب العملي فيه مع كل الاعضاء و اذا تم بخير ان شاء الله فهو هدية للجميع
- 22-06-2010, 11:36 PM #9
- 26-06-2010, 10:42 PM #10
- 27-06-2010, 01:15 PM #11
رد: طلب كود برمجي من اصحاب الخبرة
لقد راجعت شروط إغلاق الصفقات التي قمت بوضعها والشروط صحيحه ولا يوجد مشاكل في الكود لكن وجدت أحد الشروط الثلاثه التي قمت بوضعها وهي
كود PHP:Close[0]==OrderOpenPrice()
شيء آخر بالنسبه لكود إغلاق الصفقه
كود PHP:while (IsPosition(OP_SELLLIMIT, Symbol(), MagicNumber))
{
OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 5, Red); // close all prev. open SELLs
نعود الآن للتريلينج ستوب
قمت بإضافة التريلينج ستوب والأستوب لوز بناء على آخر قمة وقاع للزيجزاج بحيث يقوم عند فتح الصفقه بوضع التريلينج ستوب أعلى آخر قمه في حال البيع وأسفل آخر قاع في حالة الشراء ثم كلما تكون قمة أقل من الأستوب لوز للصفقه يقوم بتحريك الأستوب بناء على القمه الجديده هذا في حالة البيع
وإذا تكون قاع أكبر من الأستوب لوز للصفقه يقوم بتحريك الأستوب بناء على القاع الجديد في حالة الشراء
سوف تجد في خصائص الإكسبرت الخارجيه إمكانية تفعيل أو تعديل هذه الخصائص وأيضا يمكنك التحكم في إعدادات مؤشر الزيجزاج عن طريق المتغيرات
كود PHP:extern string S2="ZigZagStopLoss Settings";
extern bool UseZigZagStopLoss=true;
extern int StopLossAddPips=3;
extern bool UseZigZagTrailingStop=true;
extern string S1=" ZigZag Settings";
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
المواضيع المتشابهه
-
سؤال برمجي لأهل الخبرة
By 4X Trader in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 5آخر مشاركة: 02-10-2010, 02:13 AM -
الي اصحاب الخبرة في المؤشرات
By sfibo in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 1آخر مشاركة: 02-10-2009, 07:39 AM -
ارجوا مساعدة من الاخوة اصحاب الخبرة
By eleon in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 0آخر مشاركة: 27-06-2009, 02:33 AM -
اصحاب الخبرة ارجو ان تعطوني رايكم
By khaldon999 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 12آخر مشاركة: 16-04-2008, 12:24 PM -
للاهمية والذات اصحاب الخبرة
By gmy_911 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 5آخر مشاركة: 31-08-2006, 01:09 PM