Печатайте условия перед открытием окрытием ордера и увидите.
100 раз прочитал, не вижу, подскажите где конкретней ошибка?
Добавьте в комментарий какой прошлый ордер был и как закрылся через пробел по 1 букве
Я вывожу на экран инфу о последнем закрытом ордере
// -- определяем прибыль или убыток последнего ордера
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC_NUMBER && OrderProfit() < 0){LAST_ORDER = "Убыток " + DoubleToStr(OrderProfit(),2) + " " + TimeToString(OrderCloseTime(),TIME_MINUTES); LastiketOrder = OrderTicket();}
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC_NUMBER && OrderProfit() > 0){LAST_ORDER = "Профит " + DoubleToStr(OrderProfit(),2) + " " + TimeToString(OrderCloseTime(),TIME_MINUTES); LastiketOrder = OrderTicket();}
т.е. я вижу что последний ордер выбран правильно.
Я вывожу на экран инфу о последнем закрытом ордере
т.е. я вижу что последний ордер выбран правильно.
На экране инфа о прошлом ордере, в комментарии о тренде. Сложите всю инфу в одно место:
Добавьте в комментарий какой прошлый ордер был и как закрылся через пробел по 2 буквы: BY TP TRA
Кстати, в этих двух строчках можно выбросить фигурные скобки. Будет нагляднее
if(MARKETSITUATION == "FLAT"){order_buy();}
if(MARKETSITUATION == "TRAND"){order_sell();}
На экране инфа о прошлом ордере, в комментарии о тренде. Сложите всю инфу в одно место:
В комментарии инфа о тренде на момент открытия ордера т.е. что показывал индикатор на момент открытия ордера. Комментарий закрытого ордера не как не влияет на открытие последующего.
В комментарии инфа о тренде на момент открытия ордера т.е. что показывал индикатор на момент открытия ордера. Комментарий закрытого ордера не как не влияет на открытие последующего.
При чем здесь влияние? Если вся инфа будет в комментарии в одном месте - проще будет анализировать происходящее
Добавьте в комментарий какой прошлый ордер был и как закрылся через пробел по 2 буквы: BY TP TRA
При чем здесь влияние? Если вся инфа будет в комментарии - проще будет анализировать происходящее
Добавьте в комментарий какой прошлый ордер был и как закрылся через пробел по 2 буквы: BY TP TRA
может и так. но разве в комментарии будет написано что-то другое чем то что на экране? Если я визуально вижу (когда открыт новый ордер), что последний закрытый ордер определён правильно.
p/s. вообще мне кажется лучше анализировать последнее движение цены, а от анализа ордеров отказаться.
Вот и проверьте.
Может попробую, но скорее буду определять по цене куда и от куда она двигалась в пределах заданных пунктов.
Кстати, какой индикатор тренда используете?
Самописный. Пока только тестирую... не факт, что будет что-то стоящее. Задумывалось вообще одно, а потом решил проверить им другое.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Смысл логики такой, имеется индикатор определяющий, что сейчас на рынке "флет или тренд". Условия: при тренде продолжаем открывать ордера в направлении тренда, при флете разворачиваемся.
Кратко:
если последний ордер buy и убыточный, то:
- если индикатор флет, то открываем buy
- если индикатор тренд, то открываем sell
если последний ордер buy и прибыльный, то:
- если индикатор флет, то открываем sell
- если индикатор тренд, то открываем buy
если последний ордер sell и убыточный, то:
- если индикатор флет, то открываем sell
- если индикатор тренд, то открываем buy
если последний ордер sell и прибыльный, то:
- если индикатор флет, то открываем buy
- если индикатор тренд, то открываем sell
Так вот если посмотреть на историю торговли (картинка, комментарий отображает состояние индикатора при открытии ордера) то видно, что работает не так как нужно.
в 16:25 ордер открыт правильно
в 16:37 должен открыться ордер buy, а он открывается на продажу! Хотя согласно условию программы должен открываться именно ордер buy.
остальные ордера тоже открыты неправильно (видно из картинки)
Вот участок кода программы:
//---------------------------
string MARKETSITUATION = "NA";
if( условие ){MARKETSITUATION = "FLAT";}
if( условие ){MARKETSITUATION = "TRAND";}
GLOBAL_KOMENT = MARKETSITUATION; // комментарий при открытии ордера
string LAST_ORDER = "Нет в наличии!";
int LastiketOrder;
// retrieving info from trade history
int i2,accTotal=OrdersHistoryTotal();
for(i2=0;i2<accTotal;i2++)
{
//---- check selection result
if(OrderSelect(i2,SELECT_BY_POS,MODE_HISTORY)==true)
{
// -- определяем прибыль или убыток последнего ордера
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC_NUMBER && OrderProfit() < 0){LAST_ORDER = "Убыток " + DoubleToStr(OrderProfit(),2) + " " + TimeToString(OrderCloseTime(),TIME_MINUTES); LastiketOrder = OrderTicket();}
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC_NUMBER && OrderProfit() > 0){LAST_ORDER = "Профит " + DoubleToStr(OrderProfit(),2) + " " + TimeToString(OrderCloseTime(),TIME_MINUTES); LastiketOrder = OrderTicket();}
//--- действия, если последний ордер на покупку и убыточный
if(OrderTicket() == LastiketOrder && OrderProfit() < 0 && OrderType() == OP_BUY){
if(MARKETSITUATION == "FLAT"){order_buy();}
if(MARKETSITUATION == "TRAND"){order_sell();}
}
//--- действия, если последний ордер на продажу и убыточный
if(OrderTicket() == LastiketOrder && OrderProfit() < 0 && OrderType() == OP_SELL){
if(MARKETSITUATION == "FLAT"){order_sell();}
if(MARKETSITUATION == "TRAND"){order_buy();}
}
//--- действия, если последний ордер на покупку и прибыльный
if(OrderTicket() == LastiketOrder && OrderProfit() > 0 && OrderType() == OP_BUY){
if(MARKETSITUATION == "FLAT"){order_sell();}
if(MARKETSITUATION == "TRAND"){order_buy();}
}
//--- действия, если последний ордер на продажу и прибыльный
if(OrderTicket() == LastiketOrder && OrderProfit() > 0 && OrderType() == OP_SELL){
if(MARKETSITUATION == "FLAT"){order_buy();}
if(MARKETSITUATION == "TRAND"){order_sell();}
}
}
// работа с ордером ...
}
//---------------------------------------
Как такое может быть? Или я чего-то уже не правильно вижу?
Последний закрытый ордер, согласно выводу инфы на экран, определяется правильно, т.е. я вижу по времени закрытия ордера, что при анализе выбирается именно последний закрытый ордер.
Ну не может же в комментарий при открытии ордера попадать информация изменившегося показания индикатора....