Форум трейдеров » Торговые роботы, советники, индикаторы » Вопросы программирования
+ Подписаться
Страница 34 из 87 ПерваяПервая ... 2432333435364484 ... ПоследняяПоследняя
  1. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от zerkmax Посмотреть сообщение
    вот тут предлагал
    а... да.. вспомнил... щас найду коды, откомпилю.. выложу... до полуночи, думаю, управлюсь..
    Ну а бота на поддержку..... пропишешь..
    микротрал к нему - эт большой-большой++
  2. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    в архиве - скрипты..
    //могут работать и вручную.. полезно для отладки закрытия позы ботом.. открываешься, например, скриптом - потом уже бот рулит..

    каждому скрипту надо присвоить комбинацию (у меня alt+ цифра... - sell, ctrl+ цифра ... - buy, чтоб если скрипты вручную запускать - не ошибицца).
    Навороты - скрипты с самообслуживанием - не стал подшивать.. Насколько полезны, настолько и опасны.. без нормального бота..;)
    Но простенькие примеры (слово wait в названии скрипта) - есть.
    чтоб запустить такой скрипт - мужик в шляпе должен быть зелёный..
    чтоб тормознуть такой скрипт - мужика в шляпе - в краску(эт точно работает).. или снести отлож(а вот это - не уверен - у меня похожие по нескольким терминалам раскиданы.. Эти - с Броко, т.е. единственный термнл, что на реале не работал)..

    бот должен работать по кейборд ивентс (код нажал клавишу - пауза - код отжал). Хэндл окна - пара, которой бот решит выдать команду на открытие..

    закрытие - ботом, который может стоять в любом (или в каждом) окне..

    да.. тестим сперва ручками на деме, а уж потом..))))

    killed 0812092148.. manually;)
  3. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Макс, как всегда, не успел??:rolleyes:
    Снесу завтра... да.. инструкцию забыл и бота самого пришпилить...
    Лан.. как-нить выложу..:smartass:

    ++ снёс
  4. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Не первый раз замечаю, что..
    Код:
    StringFind( string text, string matched_text, int start=0) 
    //Параметры:
    //text   -   Строка, в которой производится поиск. 
    //matched_text   -   Искомая подстрока. 
    //start   -   Позиция в строке, с которой должен быть начат поиск.
    игнорирует часть (причём, немалую, при больших объёмах) строк, содержащих подстроку..

    Никто с этим не боролся?
  5. 195
    Комментарии
    4
    Темы
    195
    Репутация Pro
    Аватар для загрызаец  
    В начале пути

    2 Медалей
    Помогите разобраться...
    Кусок кода:
    Код:
       if(trendType == "bearish" && OrdersTotal() < 1)  
         {
          res=OrderSend(Symbol(),OP_SELLSTOP,Lots,support,3,resist,0,"",MAGICMA,0,Red);
          return;
         }
       if(trendType == "bullish" && OrdersTotal() < 1)  
         {
          res=OrderSend(Symbol(),OP_BUYSTOP,Lots,resist,3,support,0,"",MAGICMA,0,Blue);
          return;
         }
    Суть такова. Каким то образом, неважно каким, присваивается значение переменной trendType - bullish либо bearish.

    Если одно значение посылаем один стоп ордер, другое значение - другой стоп-ордер.

    Не могу понять, почему тестер открывает только ордера на покупку.
    При этом на продажу он ордеров вообще не ставит. При равных условиях с покупкой.

    То есть разницы между покупкой и продажей нет. Только проверка значения этой переменной trendType.

    Три часа голову ломаю, может кто что сможет подсказать?

    При смене значения переменной trendType он закрывает либо удаляет ордера, то есть OrdersTotal() возвращает НОЛЬ.
  6. 195
    Комментарии
    4
    Темы
    195
    Репутация Pro
    Аватар для загрызаец  
    В начале пути

    2 Медалей
    Все, разобрался, проблема была с тикетами.
  7. 1,321
    Комментарии
    7
    Темы
    1547
    Репутация Pro
    Аватар для Владимир Гербатов  
    Мастер форумных наук

    5 Медалей
    Проблемка возникла, может кто нибудь подскажет в чём дело?

    Програмирую сейчас эксперт, который сопровождает сделку, т.е просто следит за двумя позициями и переносит их стопы.
    Мне нужно определить, не закрылся ли какой либо из ордеров по стоп-лосу.

    То есть имея тикет ордера, мне нужно проверить его состояние (открыт или закрыт по стопу).


    PHP код:
    if (!OrderSelect(ticketSELECT_BY_TICKETMODE_TRADES)) Print("Ордера не существует"); 
    Все просто, если ордер не выделен, значит его нет либо он был закрыт. Это работает в реальном режиме трейдинга. Но когда запускаешь тестирование стратегии, тикеты закрытых ордеров остаются в режиме MODE_TRADES а их типы сохраняются OP_BUY или OP_SELL.
    Тем самым ордер уже закрыт, а эксперт обнаруживает его как текущий (исполняемый) ордер.

    Как правильно определить что ордер был закрыт, имея тикет ордера?
  8. 2,974
    Комментарии
    7
    Темы
    2995
    Репутация Pro
     
    Banned

    4 Медалей
    Цитата Сообщение от Vladiger Посмотреть сообщение
    Проблемка возникла, может кто нибудь подскажет в чём дело?

    Програмирую сейчас эксперт, который сопровождает сделку, т.е просто следит за двумя позициями и переносит их стопы.
    Мне нужно определить, не закрылся ли какой либо из ордеров по стоп-лосу.

    То есть имея тикет ордера, мне нужно проверить его состояние (открыт или закрыт по стопу).


    PHP код:
    if (!OrderSelect(ticketSELECT_BY_TICKETMODE_TRADES)) Print("Ордера не существует"); 
    Все просто, если ордер не выделен, значит его нет либо он был закрыт. Это работает в реальном режиме трейдинга. Но когда запускаешь тестирование стратегии, тикеты закрытых ордеров остаются в режиме MODE_TRADES а их типы сохраняются OP_BUY или OP_SELL.
    Тем самым ордер уже закрыт, а эксперт обнаруживает его как текущий (исполняемый) ордер.

    Как правильно определить что ордер был закрыт, имея тикет ордера?
    Встречал похожий глюк..
    Поменяй мод на SELECT_BY_POS, а возвращённое значение сравни с имеющимся тикетом
  9. 66
    Комментарии
    0
    Темы
    66
    Репутация Pro
     
    В начале пути

    2 Медалей
    Цитата Сообщение от EQU Посмотреть сообщение
    Встречал похожий глюк..
    Поменяй мод на SELECT_BY_POS, а возвращённое значение сравни с имеющимся тикетом
    это не глюк..

    это недоработка разработчиков mql, суть в том, что при использовании SELECT_BY_TICKET третий параметр игнорируется, таким образом конструкция
    if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))

    будет возвращать false, только тогда, когда ордера с номером ticket нет среди отрытых и нет среди закрытых/удаленных ордеров, т.е. такой ордер никогда не открывался (ну, это если доступна вся история сделок)..
  10. 3,168
    Комментарии
    1
    Темы
    3184
    Репутация Pro
    Аватар для SergP  
    Мастер форумных наук

    4 Медалей
    может проще поискать ордер в Хисторе?

Вверх
РегистрацияX

чтобы писать, читать, комментировать