TakeProfit указан не верно в отправке ордера. Необходимо указать цену, а не кол-во нанопипов профита. Исправьте на Ask+TakeProfit*Point() Ask, Bid не надо нормализовывать....
OrderSend(
Symbol(),
OP_BUY,
StartLot,
Ask,
Slippage,
0,
Ask+TakeProfit*Point(),
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
Спасибо. А для чего необходима void init и deinit. Я так понимаю deinit, в ней код исполняется только тогда. Когда запускается робот, верно? А init ?
Как можно при помощи кода. То есть лишний раз не парится на счет пятизнака. Как узнать, что у меня на данный момент пятизнак?
evillive: вот как раз инит при запуске и исполняется. деинит - при выгрузке.
Что значат при выгрузке. Если удалю робота с графика или остановлю? Не совсем понимаю, что необходимо в деинит прописывать? Я просто остановлю и все или еще,что та удалять необходимо?
Робот выгружается из памяти при удалении с графика и при закрытии терминала. Хоть немного справочник полистайте, очень полезно и много вопросов как рукой снимет.
evillive: Робот выгружается из памяти при удалении с графика и при закрытии терминала. Хоть немного справочник полистайте, очень полезно и много вопросов как рукой снимет.
Так, что необходимо мне будет прописать в этой функции. Как мне это узнать?
if ((hi-low)<=max_koridor_v_punktah) { int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//открытие ордера на покупку.
if (buy>0) { Alert ("Установлен ордер BuyStop ",buy); } int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//открытие ордера на продажу. if (sell>0) { Alert ("Установлен ордер SellStop ",sell); } if (DayOfWeek()==5 && Hour()==22) //удаляем отложенные и открытые ордера в пятницу, в 23:00 по серверному времени { if (OrderSelect(sell,SELECT_BY_TICKET)==true) { OrderClose(sell,OrderLots(),Bid,3,Green);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки закрытия на графике)зыкрытие рыночного ордера на продажу. OrderDelete(sell);//закрытие лимиток на продажу. } if (OrderSelect(buy,SELECT_BY_TICKET)==true) { OrderClose(buy,OrderLots(),Ask,3,Red);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки закрытия на графике)зыкрытие рыночного ордера на покупку. OrderDelete(buy);//закрытие лимиток на покупку. return(0); } } }
Кто подскажет почему не закрывает ордера и не удаляет лимитки?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Зачем там еще цена. Ведь обьект строится по времени .
TakeProfit указан не верно в отправке ордера. Необходимо указать цену, а не кол-во нанопипов профита. Исправьте на Ask+TakeProfit*Point()
Ask, Bid не надо нормализовывать....
OrderSend(
Symbol(),
OP_BUY,
StartLot,
Ask,
Slippage,
0,
Ask+TakeProfit*Point(),
WindowExpertName()+" "+(string)0,
0,
0,
clrBlue
);
Спасибо. А для чего необходима void init и deinit. Я так понимаю deinit, в ней код исполняется только тогда. Когда запускается робот, верно? А init ?
Как можно при помощи кода. То есть лишний раз не парится на счет пятизнака. Как узнать, что у меня на данный момент пятизнак?
Спасибо. А для чего необходима void init и deinit. Я так понимаю deinit, в ней код исполняется только тогда. Когда запускается робот, верно? А init ?
вот как раз инит при запуске и исполняется. деинит - при выгрузке.
Что значат при выгрузке. Если удалю робота с графика или остановлю? Не совсем понимаю, что необходимо в деинит прописывать? Я просто остановлю и все или еще,что та удалять необходимо?
Робот выгружается из памяти при удалении с графика и при закрытии терминала. Хоть немного справочник полистайте, очень полезно и много вопросов как рукой снимет.
Так, что необходимо мне будет прописать в этой функции. Как мне это узнать?
if ((hi-low)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//открытие ордера на покупку.
if (buy>0)
{
Alert ("Установлен ордер BuyStop ",buy);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//открытие ордера на продажу.
if (sell>0)
{
Alert ("Установлен ордер SellStop ",sell);
}
if (DayOfWeek()==5 && Hour()==22) //удаляем отложенные и открытые ордера в пятницу, в 23:00 по серверному времени
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки закрытия на графике)зыкрытие рыночного ордера на продажу.
OrderDelete(sell);//закрытие лимиток на продажу.
}
if (OrderSelect(buy,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки закрытия на графике)зыкрытие рыночного ордера на покупку.
OrderDelete(buy);//закрытие лимиток на покупку.
return(0);
}
}
}
Кто подскажет почему не закрывает ордера и не удаляет лимитки?
Народ, киньте сылку.
Или как перебрать через цикл, действующие ордера?
Доброго времени суток, Уважаемые!
Необходимо вызвать переменные: максимум дня, минимум дня, цена закрытия и открытия текущего дня, а также цену открытия следующего дня!
С уважением, AlexMikash
Доброго времени суток, Уважаемые!
Необходимо вызвать переменные: максимум дня, минимум дня, цена закрытия и открытия текущего дня, а также цену открытия следующего дня!
С уважением, AlexMikash
и мне потом скините.