Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 28
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попробуйте использовать DoubleToStr
спасибо большое.
я так понимаю, что терминал считает точные значения, и только мне показывает "обрезанные", да? и чтобы видеть точные надо делать DoubleToStr ?
спасибо большое.
я так понимаю, что терминал считает точные значения, и только мне показывает "обрезанные", да? и чтобы видеть точные надо делать DoubleToStr ?
Да
нужно проверить нет ли открытого или отложенного ордера по цене nnn если нет поставить ордер stoploss
помогите справится с частью кода (катострофически не хватает goto)
нужно проверить нет ли открытого или отложенного ордера по цене nnn если нет поставить ордер stoploss
Ну и как Вам помог бы goto?
Через OrdersTotal() получаете количество открытых и отложенных ордеров.
Соответственно, если есть, то делаете перебор и сравниваете цену открытия каждого ордера с Вашей nnn.
Если нет ордеров, то выставляете свой.
Где тут не хватает goto?
Ну и как Вам помог бы goto?
Через OrdersTotal() получаете количество открытых и отложенных ордеров.
Соответственно, если есть, то делаете перебор и сравниваете цену открытия каждого ордера с Вашей nnn.
Если нет ордеров, то выставляете свой.
Где тут не хватает goto?
1 мне нужны не все ордера а только sell и sellstop // поправка
2 никак не пойму как организовать выход из цикла перебора на выставление ордера (всё время получается что выставляю не проходя весь перебор) или обратно в цикл
1 мне нужны не все ордера а только sell и sellstop
2 никак не пойму как организовать выход из цикла перебора на покупку (всё время получается что выставляю не проходя весь перебор) или обратно в цикл
1. Кто или что мешает Вам анализировать тип ордера?
2. Заведите переменную-флаг, проинициализируйте её, проверьте ордера и, при необходимости, поменяйте значение переменной-флага. После цикла, в зависимости от значения флага, выставляйте ордер.
Так понятно?
Так понятно?
понятно, спс
попробовал щас с пунктуацией никак не разберусь :-)
Print("Ордеров By ",Koob,", Ордеров Sell = ",Koos);
oo=0; // флаг наличия ордера
if (Koos <= Koob) // если открытых!!! ордеров sell меньше или равно количеству открытых!!! ордеров by
for (i=0; i<k; i++)
{if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) // тогда если есть открытый ордер или отложенный ордер sell
{ if (PraiceSs = OrderOpenPrice()) { oo=1; } //по PraiceSs eстановим на оо значение
}
}
}
if (oo=0) {OrderSend(Symbol(),OP_SELLSTOP,v,PraiceSs, ,Sl,Tp, ,mn,0,Green);} //ставим sellstop
пишет что в строке " if ( PraiceSs= OrderOpenPrice()) { oo=1; } " - '=' - illegal assignment used
ps PraiceSs -double, oo -int
Во-первых, операция сравнения на равенство "==".
Во-вторых, нельзя сравнивать переменные с типом double на равенство, надо сравновать на близость: MathAbs( PraiceSs - OrderOpenPrice() ) <= PriceDelta
Во-первых, операция сравнения на равенство "==".
Во-вторых, нельзя сравнивать переменные с типом double на равенство, надо сравнивать на близость: MathAbs( PraiceSs - OrderOpenPrice() ) <=
а какую тогда задать PriceDelta ? рядом ближе 30 пипсов точно ордеров не может быть
и почему нельзя сравнивать?
а какую тогда задать PriceDelta ? рядом ближе 30 пипсов точно ордеров не может быть
и почему нельзя сравнивать?
PriceDelta = Point * 30;
Сравнение вещественных чисел