Для начала нормализуйте лот и разберитесь с комментами.
Комменты подправил.. А лот я думал правильно указан. Не скажете что с ним не так и как его нормализировать?
Еще заметил ордер может открыться только раз или не открыться вообще…
NormalizeDouble(переменная лота,разрядность) - этим. тп и сл - хоть и нули, но будет тоже не лишне нормализовать.
Я уже понял свою ошибку.
Оказывается просто напросто забыл о RefreshRates(); работает теперь все как надо.
Тем не менее спасибо за инфу!
Вы говорите NormalizeDouble(переменная лота,разрядность), Разрядность это я так понимаю Digits писать надо?
Я уже понял свою ошибку.
Оказывается просто напросто забыл о RefreshRates(); работает теперь все как надо.
Тем не менее спасибо за инфу!
Вы говорите NormalizeDouble(переменная лота,разрядность), Разрядность это я так понимаю Digits писать надо?
Дижитс это разрядность валютной пары, а у лота разрядность 2 знака после запятой...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
В общем, не открывается ордер в цыкле… писал я код так:
Перед началом вот описание переменных:
double lot = 0.01;
double stop_loss = 0;
double take_profit = 0;
int magic_nomber = 12345;
string comment = "Описание позиции";
Далее:
while (true)
{
OrderSend(Symbol(), OP_BUY, lot, NormalizeDouble(Ask,Digits), 0, stop_loss, take_profit, comment, magic_nomber, 0, CLR_NONE);
Sleep (5000);
}
Или еще так пробовал:
for(;;)
{
Sleep(5000);
OrderSend(Symbol(), OP_BUY, lot, NormalizeDouble(Ask,Digits), 0, stop_loss, take_profit, comment, magic_nomber, 0, CLR_NONE);
}
Если же просто без цыкла то ордера открываются отлично…