зарание прошу пращения за граматику :/. Вапрос таков, как переписать историю катировок (через код)? Хотелосбы использоват МТ4 для анализа даных из другово брокера.
Подскажите пожалуйста, у меня на графике каждые несколько секунд меняются цвета свечек на цветной цвет и обратно на черно белые. Раньше такого не было. Можно это как то отключить?
Я написал код для открытия двух отложенных ордеров (BuyStop и SellStop) по условиям a=true и b=true и через некоторое время советник закрывает оба ордера, до появления повторного сигнала, но порой советник открывает 2 отложенных ордера в одном направлении. Почему это происходит и как избежать этого "бага"?
if (a=true && b=true) { int OrderCount = OrdersTotal(); if (OrderCount>1) return(0); ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green); Sleep(1000);
for (int i=OrdersTotal()-1; i>=0; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break; if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket()); if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket()); if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage); if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage); }
Я написал код для открытия двух отложенных ордеров (BuyStop и SellStop) по условиям a=true и b=true и через некоторое время советник закрывает оба ордера, до появления повторного сигнала, но порой советник открывает 2 отложенных ордера в одном направлении. Почему это происходит и как избежать этого "бага"?
Подскажите, пожалуйста.
Заранее благодарен
Может здесь:
if (OrderCount>0) return(0);
Вообще-то столько не "спят" - Sleep(1000*59*TimeFrame); - пришёл новый тик, запустился в работу Ваш код, открылись два ордера, затем пауза на "2 часа" (условно), а потом Вы пытаетесь закрыть, если вдруг один из ордеров стал рыночным по ценам, которые получили 2 часа назад - ОРИГИНАЛЬНО!!! КТО ВАС УЧИЛ???
Можете фиксировать в глобальной переменной время открытия ордеров и контролировать разницу м\у TimeCurrent() и зафиксированным временем.
Как-то так:
Экстремумы ЗигЗага от текущего времени до Time_Control собраны в массив.
А подскажите такой момент, как посчитать все зигзаги, сколько их?
Здраствуйте,
зарание прошу пращения за граматику :/. Вапрос таков, как переписать историю катировок (через код)? Хотелосбы использоват МТ4 для анализа даных из другово брокера.А подскажите такой момент, как посчитать все зигзаги, сколько их?
Записано в переменной li_IND, или так
count=ArraySize(lda_Extremum);А подскажите такой момент, как посчитать все зигзаги, сколько их?
Если сделать так:
- функция будет возвращать количество найденных экстремумов с момента fdt_TimeControl.Благодарю
Здраствуйте,
Возможно ли в експерт написат,что график с фиксираный мащаб 1:1 -в настроек можно.
Если возможно,скажите как.
Заранее спосибо.
Добрый день.
Я написал код для открытия двух отложенных ордеров (BuyStop и SellStop) по условиям a=true и b=true и через некоторое время советник закрывает оба ордера, до появления повторного сигнала, но порой советник открывает 2 отложенных ордера в одном направлении. Почему это происходит и как избежать этого "бага"?
if (a=true && b=true)
{
int OrderCount = OrdersTotal();
if (OrderCount>1) return(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green);
Sleep(1000);
ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, slippage, PriceOpen_Buy,0,0,Green);
Sleep(1000*59*TimeFrame);
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
}
return(0);
}
Подскажите, пожалуйста.
Заранее благодарен
Значения этих переменных хранятся в массивах-тайсериях.
то есть, у вас все так .
Условия,
Добрый день.
Я написал код для открытия двух отложенных ордеров (BuyStop и SellStop) по условиям a=true и b=true и через некоторое время советник закрывает оба ордера, до появления повторного сигнала, но порой советник открывает 2 отложенных ордера в одном направлении. Почему это происходит и как избежать этого "бага"?
Подскажите, пожалуйста.
Заранее благодарен
Может здесь:
Вообще-то столько не "спят" - Sleep(1000*59*TimeFrame); - пришёл новый тик, запустился в работу Ваш код, открылись два ордера, затем пауза на "2 часа" (условно), а потом Вы пытаетесь закрыть, если вдруг один из ордеров стал рыночным по ценам, которые получили 2 часа назад - ОРИГИНАЛЬНО!!! КТО ВАС УЧИЛ???
Можете фиксировать в глобальной переменной время открытия ордеров и контролировать разницу м\у TimeCurrent() и зафиксированным временем.