ماذا تقصد بتحويله ؟ إشرح أكثر
نعم لن يفتح صفقات لأن طريقتك لكتابة الكود خاطئه في تعريف المتغيرات الخارجيه وإعطائها القيم
Printable View
السلام عليكم شباب
اليوم دخلت بعد غياب عن الفوركس لمنصة mql4
ووجدت تغير كبير
في البنية العامة
اين الدالة start
واين اكتب الشروط ؟؟؟؟
نعم استاد أنا متفق معك تماما إن طريقت كتابت المتغيرات هي خطئة لكن كل ما أريد هو كتابت نقاط الدخول ولخروج من الصفقات في سطر واحد ,لأن هنا أضع خمسة أسطر من OrderSend لكن لدي في جدول إكسيل 5000 نقطت دخول و خروج و لا يمكنني أن أضع 5000 سطر من OrderSend و أقوم بتعديل كل سطر على حدا.
لهدا أريد سطر واحد من OrderSend و أضع المتغيرات أو بأيت طريقة أخري بغير المتغيرات المهم أن تكون نقط الدخول مجموعة في سطر وحد و أعمل كبي كولي من جدول إكسيل إلى mql4 بكل سهولة .
إن الملف رقم 1 يعمل بشكال جيد و أريد تعديله بشكل يشبه الملف رقم 2 .
إدا أردت عمل باك تيست شغل إيستوريك من سنة 2010. وشكرا لمجهوداتك أولا وأخيرا.
لو سمحت كنت عايز طريقه اعمل بيها sellect على اخر صفقه اتفتحت
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol()&&اخر صفقه اتفتحت)
}}
السلام عليكم ورحمة الله وبركاته
هل هناك خطأ في الأكواد التالية ، علما بأنني أقمت بإضافة كود بعدم إقفال الخسارة في البيع والشراء إلا بربح
--------
//+------------------------------------------------------------------+
//| EA(1).mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern int CloseCandle=0;
extern int MagicNumber=0;
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit()
{
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
Comment(" ");
double SC_B=iCustom(Symbol(),0,"KKK",0,CloseCandle);
double SC_S=iCustom(Symbol(),0,"KKK",1,CloseCandle);
if(SC_B<5000)
{
if(OrderOpenPrice()-OrderClosePrice()>= 1000000000000*Point)continue;
CloseOrders(OP_BUY);
}
if(SC_S<5000)
{
if(OrderClosePrice()-OrderOpenPrice()>=1000000000000*Point)continue;
CloseOrders(OP_SELL);
}
return(0);
}
void CloseOrders(int type)
{
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber&&OrderType()==type)
{
OrderClose(ticket,OrderLots(),OrderClosePrice(),30 );
}
}
}
//+---------------------------------------------------------------------------------+
----------
وعليكم السلام ورحمة الله وبركاته
راجع هذا الموضوعط
https://forum.arabictrader.com/t189304.html
وعليكم السلام ورحمة الله وبركاته
إذا أردت أن تبحث عن سعر فتح وإغلاق صفقه معينه فيجب أن تستخدم الداله OrderSelect أولا
مثال
كود PHP:
if(SC_B<5000)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber==MagicNumber)
{
if(OrderOpenPrice()-OrderClosePrice()>= 1000000000000*Point)continue;
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}
الله يعطيك العافية ، بعد تغير الكود لإقفال البيع والشراء مثل ماوضحت لي ، فظهر لي خطأ
هل يمكنك تحديد الخطأ ؟
//+------------------------------------------------------------------+
//| - EA(1).mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright " Copyright 2013,"
#property link ""
extern int CloseCandle=0;
extern int MagicNumber=0;
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit()
{
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
Comment(" ");
double SC_B=iCustom(Symbol(),0,"KKK",0,CloseCandle);
double SC_S=iCustom(Symbol(),0,"KKK",1,CloseCandle);
if(SC_B<5000)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber==Magi cNumber)
{
if(OrderOpenPrice()-OrderClosePrice()>= 1000000000000*Point)continue;
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}
if(SC_S<5000)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber==Magi cNumber)
{
if(OrderClosePrice()-OrderOpenPrice()>= 1000000000000*Point)continue;
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
void CloseOrders(int type)
{
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber&&OrderType()==type)
{
OrderClose(ticket,OrderLots(),OrderClosePrice(),30 );
}
}
}
//+---------------------------------------------------------------------------------+
تحياتي لك
هذا هو التعديل الصحيح
يجب أن تراجع الدروس التعليميه فليك أخطاء في القواعد الأساسيهكود PHP:
//+------------------------------------------------------------------+
//| - EA(1).mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright " Copyright 2013,"
#property link ""
extern int CloseCandle=0;
extern int MagicNumber=0;
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit()
{
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
Comment(" ");
double SC_B=iCustom(Symbol(),0,"KKK",0,CloseCandle);
double SC_S=iCustom(Symbol(),0,"KKK",1,CloseCandle);
if(SC_B<5000)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderOpenPrice()-OrderClosePrice()>= 1000000000000*Point)continue;
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}
if(SC_S<5000)
{
for( i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderClosePrice()-OrderOpenPrice()>= 1000000000000*Point)continue;
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
void CloseOrders(int type)
{
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
OrderClose(ticket,OrderLots(),OrderClosePrice(),30 );
}
}
}
//+---------------------------------------------------------------------------------+
إن شاء الله ستصل إلى الإحتراف لكن المهم هو الإجتهاد
وتابع معنا هذا الموضوع
https://forum.arabictrader.com/t191675.html
السلام عليكم ورحمة الله وبركاته
هناك بعض الاكسبيرتات او المؤشرات تجعل الشارت تتجمد خصوصا مع شموع الرينكو وبالتالي لايعمل الاكسبيرت لانه يدخل اليه بيانات جديده
سؤالي كيف نجعل الشارت تعمل مع كل شمعة جديدة تحديث (ريفرشمنت ) لنفسها لوحدها بدال ما نعملها يدويا ، و هذا ليس عمليا ابدا وخصوصا ان شموع الرينكو لاتعرف متى تتكون الشمعة الجديدة فيها حتى تعمل لها ريفرشمنت .
جزاكم الله خيرا