النتائج 1 إلى 15 من 35
- 03-07-2012, 12:59 AM #1
طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
السلام عليكم ورحمة الله وبركاته
طلب من الاخ و الاستاذ الغالي
(MR.dollar)
ارجو تفضل سيادتك باعادة صياغة الكود ادناه او استبداله
كود PHP:void CloseOrder7()
{
int orderstotal = OrdersTotal();
int orders = 0;
int ordticket[30][2];
for (int i = 0; i < orderstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() != OP_BUY || OrderSymbol() != Symbol() || OrderMagicNumber() != 1)
{
continue;
}
ordticket[orders][0] = OrderOpenTime();
ordticket[orders][1] = OrderTicket();
orders++;
}
if (orders > 1)
{
ArrayResize(ordticket,orders);
ArraySort(ordticket);
}
for (i = 0; i < orders; i++)
{
if (OrderSelect(ordticket[i][1], SELECT_BY_TICKET) == true)
{
bool ret = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0, Red);
if (ret == false)
Print("OrderClose() error - ", ErrorDescription(GetLastError()));
}
}
}
علما باني حاولت اعادة صياغته مراراً وتكراراً لاكن دون جدوى
في المرفقات الاكسبيرت المستخرج منه الكود اعلاه
واذا امكن اضافة خاصية مضاعفة حجم العقود في حالة ضرب الستوب او الاغلاق على الخسارة
والرجوع الى القيمة الافتراضية في حالة تعويض الخسارة
مع فائق شكري وتقديري
- 03-07-2012, 07:02 PM #2
لاحول ولاقوة الابالله
24 مشاهدة ولا يوجد رد واحد
هل استبدال الكود بهذه الصعوبة
- 04-07-2012, 02:21 AM #3
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
- 04-07-2012, 08:38 AM #4
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
في البداية اود ان اشكرك يا اخي الغالي على تفضلك والرد على مشكلتي
ثانيا فيما يتعلق باعادة صياغة او استبدال الكود : هو ان تتم اعادة كتابته بطريقة اخرى
الغرض من استبداله : هو تحويل الاكسبيرت من لغة MQL الى JAVA
ليتسنى لي تجربته والتاكد من دقة دخوله وخروجه من الصفقات ونتائجه على منصات الشركات الكبرى ECN والتي تكون مبرمجة بلغة JAVA
اما المشكلة التي تواجهني في تحويل الكود هي المصفوفات الموجودة في ادناه والتي ترفض تحويلها لغة الجافا والسبب هناك خطا والله اعلم في برنامج الميتاايديتور حيث ان قاعدة مصفوفة
ArraySort
والتي تنص ومن الواجب ان يكون
ordticket
عدد عشري وليس عدد صحيح بينما في الكود اعلاه تم تعريفه على انه عدد صحيح
int ArraySort( double&array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND)ArrayResize(ordticket,orders);
ArraySort(ordticket);
وهذا فهمي للقاعدة والله اعلم
اتمنى المساعدة في حل مشكلة هذه المصفوفتين
ملاحظة : سبب استخدامي المنصات اعلاه دقة البيانات التاريخية لها وتكاد ان تخلو من اية اخطاء
ومعاناتي المستمرة مع
MT4
بسبب كثرة الاخطاء التي يقع فيها
- 04-07-2012, 12:48 PM #5
- 05-07-2012, 08:26 PM #6
هل امر استبدال كود الاغلاق بهذه الصعوبة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
- 05-07-2012, 10:44 PM #7
وعليكم السلام ورحمة الله وبركاته
تفضل هذه الداله ستؤدي نفس الغرض
كود PHP:void CloseOrder7()
{
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==1&&OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),Bid,0,Red);
}
}
}
- 06-07-2012, 10:23 AM #8
- 07-07-2012, 11:23 PM #9
- 07-07-2012, 11:46 PM #10
- 08-07-2012, 12:07 AM #11
استاذي الغالي
هل بالامكان عمل خاصية نقل الستوب وثبيته على سعر فتح الصفقة في حالة تحركه خمسة نقاط مثلا
وانا اسف للاطالة عليك بالاسئلة
- 13-07-2012, 09:53 PM #12
- 13-07-2012, 10:21 PM #13
قم بتعريف دالة البريك إيفن
كود PHP:void MoveBreakEven()
{
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(BreakEven>0)
{
if(NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
}
}
}
}
else
{
if(BreakEven>0)
{
if(NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
}
كود PHP:if(BreakEven>0)MoveBreakEven();
كود PHP:extern int BreakEven=0;
extern int movestopto=1;
- 14-07-2012, 12:06 PM #14
- 15-07-2012, 12:11 AM #15
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
استاذي الغالي
حاولت اضافة الكود للاكسبيرت المرفق لكني للاسف فشلت
ارجوا تفضلك وسعة صدرك بمساعدتي باضافة ما يلي للاكسبيرت المرفق
اولا خاصية نقل الستوب الى نقطة الصفر في حالة تحرك السعر خمسة او عشرة نقاط مرة واحدة فقط ولا يتحرك بعدها مهما تحرك السعر
ثانيا اضافة فلتر بحيث لا يتم الدخول الى الصفقة في حالة وجود شمعة طولها 20 نقطة او اكثر
ثالثا والاهم ادارة راس المال
حيث تكون قيمة اللوت كالتالي
1000 = 0.5
2000 = 1
3000 = 1.5
4000 = 2
5000 = 2.5
وهكذا حتى تصل قيمة اللوت 50
وانا اسف على الاطالة وكثرة الطلبات والاسئلة
مع فائق احترامي وتقديري وشكري لسيادتك
kingaro.mq4