شكراً على الإجابة اخوتي الكرام
مرفق لكم الكود
الهدف منها فتح صفقة شراء كل 25 نقطة تبعد عن اول صفقة شراء
هل من شركة على علمكم تسمح لي بفتح الصفقات حتى لو قفز السعر لكي اجرب الاكسبرتات عندها
لانه لايوجد بصراحة أي فائدة من التداول بالاكسبرتات في حالة قفز السعر وتعطل التنفيذ !!!
double x=0.0025;
int OnInit()
{
//---
int buy= OrderSend(Symbol(),OP_BUY,0.1,Ask,0,NULL,NULL,"BUY OPEN",12345,0,Blue);
if (buy<0)
Print("OrderSend failed with error #",GetLastError());
else
Print("OrderSend placed successfully");
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
buytest();
}
//---
void buytest()
{for(int i =OrdersTotal(); i>=0;i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol())
if (OrderType()==OP_BUY)
if (OrderMagicNumber()==12345)
if(OrderOpenPrice()==MarketInfo(Symbol(),MODE_ASK) )
Print(DoubleToStr(OrderSelect(i,SELECT_BY_POS,MODE _TRADES)));
else
{
if(OrderOpenPrice()==MarketInfo(Symbol(),MODE_ASK)-x)
{
int buy = OrderSend(Symbol(),OP_BUY,0.1,Ask,0,NULL,NULL,"MED O BUY OPEN",12345,0,Blue);
if (buy <0)
Print("OrderSend failed with error #",GetLastError());
else
{
x=x+0.0025;
Print("OrderSend placed successfully");
}}
else
Print(DoubleToStr(OrderOpenPrice()));
}}}