|
|
|
|
|
السلام عليكم
استاذى
بختصار
اريد دله تبحث عن الصفقات الخاسره بعدد نقات معينه
ثم تعرف نوعها
ثم تعرف رقم التكت
ثم تفتح امر معاكس تعمل كونت مساوى للتكت للتميز
الطلب الثانى
داله فتح الملف يكون غير مقرواء غير للكسبيرت يكون فيه تاريخ الانتهاء
الطلب الثالث
فى اثناء الخبر الكسبيرت بيفتح صفقات متلحقه عندى
عاوز اعرف ان فى خبر الان عن طريق سرعه الفتح الصفقات
وبتالى اشغل المضاعفات
وبعد انتهاء الخبر يرجع كما كان للتداول الطبيعى
ده محولتى فى كتابه الداله
لم تعمل للسف
كود:
int Hedge_Order_BUY(int type)
{int cnt2=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderType()==type && OrderStopLoss()<(Step_Hedge*Point*T)-Bid)
cnt2=OrderTicket();
}
return(cnt2);
for(int ii=0;ii<OrdersTotal();ii++)
{
if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderComment()==cnt2)
{
if(cnt2==0)
{
bool buy=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,cnt2,Magic,0,CLR_NONE);
}
}
}
}
}
|
|
|
|
|
،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،بالنسبة للكود الاول يمكن معرفة تيكت صفقة بالمواصفات التي ذكرتها عن طريق الكود التالي،،،
كود:
int Order_Ticket()
int Ticket =0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderProfit()<0)
{
if (MathAbs((OrderOpenPrice()-Bid)/Point>=/*عدد النقاط الخاسرة*/) {Ticket=OrderTicket();}
}
}
return(Ticket);
}
،،،ولكن لا يمكن التحكم في فتح صفقة برقم تيكت معين لان البروكر هو من يقوم باختيار الرقم،،،
،،،الكود الثاني يجب ان يتم برمجة ملف dll وتخزين القيم فيه ثم استدعاء الملف داخل الاكسبيرت وقراءة القيم منه،،،
،،،الكود الثالث يمكن معرفة ذلك عن طريق وضع متغير من النوع datetime وعند تفعيل الصفقة يتم تخزين الوقت الحالي في هذا المتغير ثم عمل وظيفة تقوم بمقارنة وقت افتتاح اخر صفقة بهذا الوقت وعند وجود فرق يتم تحديدة يقوم الاكسبيرت بتفعيل المضاعفات والكود التالي لمعرفة وقت افتتاح اخر صفقة،،،
كود:
double Last_Order_Open_Time()
{
datetime xd =0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt <= total ; cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if (OrderOpenTime()>xd) {xd=OrderOpenTime();}
}
}
return(xd);
}