mobidik
-----
Сделай пожалуйста также ещё двоим.
Не совсем понял, ведь торгуют в обе стороны... Быть может, реверс сигналов? Сделал, но это больному не поможет:
Сделай пожалуйста также ещё двоим.
Не совсем понял, ведь торгуют в обе стороны... Быть может, реверс сигналов? Сделал, но это больному не поможет:
Нет,нет.
Они просто не ставились в терминал.
Сделай те.
Лови.Помогите вставить magic в советник, а то уже 2 дня бьюсь над ним, а он все равно не хочет работать (или все ордера тралит, или вообще не открывает):facepalm:
Выставляй лок используя глобальную переменную - чтобы несколько советников одновременно не стали выполнять OrderSend до его окончания и появления нового ордера. Т.е. проверяешь - если нет переменной, то создаешь и продолжаешь выставление ордера; если есть переменная - sleep и проверяешь переменную заново.Сам код не интересует, подскажите просто принцип реализации. С уважением, Владимир.
Точно. Совсем забыл про глобальные переменные :not-good:, а ведь с их помощью и можно организовать неплохой счетчик открытых ордеров для всех копий советника. Спасибо vlad_123 :embrace:, буду реализовывать. С уважением, Владимир.Выставляй лок используя глобальную переменную
Как раз-таки открытые ордера посчитать не проблема - бери и считайТочно. Совсем забыл про глобальные переменные :not-good:, а ведь с их помощью и можно организовать неплохой счетчик открытых ордеров для всех копий советника. Спасибо vlad_123 :embrace:, буду реализовывать. С уважением, Владимир.
У меня как раз это и не проблема. Первый ордер выставляется по определенному алгоритму, к которому код больше не обращается (после открытого ордера). Вот там и увеличу на 1 глобальную переменную. Следующее увеличение на 1 возможно только на другой паре. При значении глобальной переменной >1 возникает запрет на открытие ордеров по всем парам. А уже открытые ордера обрабатываются по другому алгоритму. Сейчас закодю и погоняю. С уважением, Владимир.Как раз-таки открытые ордера посчитать не проблема - бери и считай
Проблема - как не навыставлять кучу ордеров одновременно на нескольких парах.
Нужно:Всем привет! Столкнулся с проблемой.
Использую функцию OrderSelect для определения прибили/убытка последних 3-х ордеров.
В тесторе GetLastError() выдает ошибку №4051
В чем может быть причина?
for(int i=OrdersHistoryTotal(); i>OrdersHistoryTotal()-3; i--)
Ордера нумеруются от 0 до Total-1for(int i=OrdersHistoryTotal()-1; i>OrdersHistoryTotal()-4; i--
Ребят, еще раз прошу вас, помогите с индюком. Есть проблема: вот этот индикатор, при переходе через ноль звенит не переставая. А если на нескольких парах , то такой перезвон стоит, что или терминал приходится выключать или ТФ менять, т.е. работа с ним прекращается. Можете сделать так, чтобы этот индикатор, при переходе через ноль, давал 3 звонка на текущем баре и еще один после закрытия бара ? Алерт реально нужен, мозг отрывает трезвоном, аж динамики хрипеть начинают. (Ну или хотя бы чтоб один сигнал давал на текущем баре и заткнулся).
Нужно:
Ордера нумеруются от 0 до Total-1
И проверять, что OrdersHistoryTotal()-4 >= 0
Спасибо за помощь, но проблема не решилась. Изменений вообще никаких нет.Нужно:
Ордера нумеруются от 0 до Total-1
И проверять, что OrdersHistoryTotal()-4 >= 0
?for(int i=OrdersHistoryTotal()-1;
for(int i=OrdersHistoryTotal(); i>OrdersHistoryTotal()-3; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false) Print("motherfucker ERROR cycle 1.....",GetLastError());
}
for(int i=OrdersHistoryTotal()-1; i>OrdersHistoryTotal()-3; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false) Print("motherfucker ERROR cycle 2.....",GetLastError());
}
Ни тот ни тот вариант не рабоатет. Работает вариантВы уверены, что попробовали:
?
Выполните вот это и убедитесь, про что я говорю:
Код:for(int i=OrdersHistoryTotal(); i>OrdersHistoryTotal()-3; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false) Print("motherfucker ERROR cycle 1.....",GetLastError()); } for(int i=OrdersHistoryTotal()-1; i>OrdersHistoryTotal()-3; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==false) Print("motherfucker ERROR cycle 2.....",GetLastError()); }
Чему равен ht?Ни тот ни тот вариант не рабоатет. Работает вариант
for(i=ht-1; i>ht-4; i--)
Эта проблема не имеет отношения к ошибке 4051 в OrderSelect, не так ли?Однако, сделки открываются неправильно. После убыточной серии из трех минусовых ордеров должен открываться ордер с лотом*2, а такой ордер открывается через один.