Не могу понять что сделать, что бы открывался ордер на новой свече. Вроде все компилируется без ошибок, но чего то не хватает.
В общем не работает, так как хотелось бы. Не первый раз с такой проблемой сталкиваюсь.
static long lngTime = 0; // Фиксируем время для открытия позиции в период закрытия старой/открытие новой свечи
//datetime t=0; // Фиксируем время для открытия позиции в период закрытия старой/открытие новой свечи
//--------------------------------------------------------------------
void OnTick()
{
for (int i=0; i<OrdersTotal(); i++)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
double RSI0 = iRSI(NULL,0,period_RSI,PRICE_CLOSE,0);
double MFI0 = iMFI(NULL,0,period_MFI,0);
double DEM0 = iDeMarker(NULL,0,period_DEM,0);
// Появился новый бар
if(Time[0] != lngTime) // ждём появления нового бара
{
lngTime = Time[0];
double SL=0,TP=0;
if (RSI0 < RSIbuy_level && MFI0 == MFIbuy_level && DEM0 == DEMbuy_level && Open[1]>Close[1])
{
if (OrderSend(Symbol(),OP_BUY, Lot(),NormalizeDouble(Ask,Digits),slippage,0,0,Expiration,Magic,Blue)==-1) Print(GetLastError());
}
if (RSI0 > RSIsell_level && MFI0 == MFIsell_level && DEM0 == DEMsell_level && Open[1]<Close[1])
{
if (OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(Bid,Digits),slippage,0,0,Expiration,Magic,Red)==-1) Print(GetLastError());
}
}
}
Комментарии (1)
35 AM2 Сообщений: 16471 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий