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()));
}
}
}
علما باني حاولت اعادة صياغته مراراً وتكراراً لاكن دون جدوى
في المرفقات الاكسبيرت المستخرج منه الكود اعلاه
واذا امكن اضافة خاصية مضاعفة حجم العقود في حالة ضرب الستوب او الاغلاق على الخسارة
والرجوع الى القيمة الافتراضية في حالة تعويض الخسارة
مع فائق شكري وتقديري
1 مرفق
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
اقتباس:
المشاركة الأصلية كتبت بواسطة silver hawk
السلام عليكم ورحمة الله وبركاته
طلب من الاخ و الاستاذ الغالي
(
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()));
}
}
}
علما باني حاولت اعادة صياغته مراراً وتكراراً لاكن دون جدوى
في المرفقات الاكسبيرت المستخرج منه الكود اعلاه
واذا امكن اضافة خاصية مضاعفة حجم العقود في حالة ضرب الستوب او الاغلاق على الخسارة
والرجوع الى القيمة الافتراضية في حالة تعويض الخسارة
مع فائق شكري وتقديري
عليكم السلام ورحمة الله وبركاته
تفضل جرب الاكسيبرت فـ المرفقـات ، وماذا تقصد بإعادة صياغة الكود ادناه او استبداله !!
همسة : الاكسيبرت تم برمجته عن طريق برنامج forex generator وقد يصعب التعديل عليه .
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
اقتباس:
المشاركة الأصلية كتبت بواسطة spiders101
عليكم السلام ورحمة الله وبركاته
تفضل جرب الاكسيبرت فـ المرفقـات ، وماذا تقصد بإعادة صياغة الكود ادناه او استبداله !!
همسة : الاكسيبرت تم برمجته عن طريق برنامج forex generator وقد يصعب التعديل عليه .
في البداية اود ان اشكرك يا اخي الغالي على تفضلك والرد على مشكلتي
ثانيا فيما يتعلق باعادة صياغة او استبدال الكود : هو ان تتم اعادة كتابته بطريقة اخرى
الغرض من استبداله : هو تحويل الاكسبيرت من لغة 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
بسبب كثرة الاخطاء التي يقع فيها
1 مرفق
رد:طلب ورجاء من الاخ والاستاذ (MR.dollar) في تعديل الكود المرفق
اقتباس:
المشاركة الأصلية كتبت بواسطة silver hawk
والله اعجز عن وصف امتناني وشكري لسيادتك
على سرعة استجابتك
وان شاء الله سوف اقوم باضافة الدوال
واعلامك بالنتيجة
مع فائق احترامي وشكري وتقديري لسيادتك
استاذي الغالي
حاولت اضافة الكود للاكسبيرت المرفق لكني للاسف فشلت
ارجوا تفضلك وسعة صدرك بمساعدتي باضافة ما يلي للاكسبيرت المرفق
اولا خاصية نقل الستوب الى نقطة الصفر في حالة تحرك السعر خمسة او عشرة نقاط مرة واحدة فقط ولا يتحرك بعدها مهما تحرك السعر
ثانيا اضافة فلتر بحيث لا يتم الدخول الى الصفقة في حالة وجود شمعة طولها 20 نقطة او اكثر
ثالثا والاهم ادارة راس المال
حيث تكون قيمة اللوت كالتالي
1000 = 0.5
2000 = 1
3000 = 1.5
4000 = 2
5000 = 2.5
وهكذا حتى تصل قيمة اللوت 50
وانا اسف على الاطالة وكثرة الطلبات والاسئلة
مع فائق احترامي وتقديري وشكري لسيادتك
الملف المرفق 330872