Закрытие ордеров по количеству лотов
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Закрытие ордеров по количеству лотов

  1. #1
    Теоретик
    Регистрация
    03.04.2013
    Сообщений
    475
    Promo (¢)
    690
    Благодарности
    Получено: 148
    Отправлено: 79

    Закрытие ордеров по количеству лотов

    Возникла необходимость в смене советника на VPS, но советник в рынке, а у другого советника несколько иной механизм. Решением посчитал написание скрипта, который будет закрывать терминал, если суммарное количество лотов меньше указанного значения N. Таким образом, как только сова закончит торговать, терминал закроется...Может кому и пригодится...
    Вложения Вложения

    Вы не можете благодарить!

  2. #2
    Теоретик
    Регистрация
    03.04.2013
    Сообщений
    475
    Promo (¢)
    690
    Благодарности
    Получено: 148
    Отправлено: 79
    Писал описание в спешке, в итоге немного напутал...Правильно будет так: Решением посчитал написание скрипта, который будет закрывать терминал, если суммарное количество ордеров меньше указанного значения N. Таким образом, как только сова закончит торговать, терминал закроется (если N=1).

    Вы не можете благодарить!

  3. #3
    Морской царь Аватар для 57-miracle
    Регистрация
    12.09.2012
    Адрес
    Россия
    Сообщений
    11,543
    Promo (¢)
    3,520
    Благодарности
    Получено: 7,154
    Отправлено: 3,508
    Цитата Сообщение от KLoAF Посмотреть сообщение
    Писал описание в спешке, в итоге немного напутал...Правильно будет так: Решением посчитал написание скрипта, который будет закрывать терминал, если суммарное количество ордеров меньше указанного значения N. Таким образом, как только сова закончит торговать, терминал закроется (если N=1).
    А реально сделать так чтобы скрипт не закрывал терминал, а просто запрещал авто торговлю, то есть отжимал её кнопочку ?
    Например для меня было бы полезно. У меня советник торгует через виртуальную модель, а там торговля идёт не зависимо разрешена ли торговля или нет. Просто при отжатой кнопочке, сделки не копируются в реал, но я всё равно вижу как бы велась и ведётся торговля стоя на паузе...

    Ну или к примеру работают два или более, и хочется чтобы 1 из них встал на паузу, а другие нет. Сделать выборку по мейджику.
    Получаем у всех есть ордера и все торгуют, запустим скрипкт, все как торговали так и будут, но как только у какого-нибудь (скажем с мейджиком 555) станет 0 ордеров, меняем ему морду улыбки на грусть.

    Вы не можете благодарить!
    Последний раз редактировалось 57-miracle; 06.12.2014 в 23:26.

  4. #4
    Теоретик
    Регистрация
    03.04.2013
    Сообщений
    475
    Promo (¢)
    690
    Благодарности
    Получено: 148
    Отправлено: 79
    57-miracle, в стандартных функциях нету возможности это сделать (что в какой-то мере логично, хотя и не понятно зачем разрешили закрывать терминал при этом), так что только если через dll-ки (да и то походу эмулировать работу мыши?).

    Вы не можете благодарить!

  5. #5
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,017
    Promo (¢)
    11,590
    Благодарности
    Получено: 2,425
    Отправлено: 1,315
    Цитата Сообщение от 57-miracle Посмотреть сообщение
    А реально сделать так чтобы скрипт не закрывал терминал, а просто запрещал авто торговлю, то есть отжимал её кнопочку ?
    Например для меня было бы полезно. У меня советник торгует через виртуальную модель, а там торговля идёт не зависимо разрешена ли торговля или нет. Просто при отжатой кнопочке, сделки не копируются в реал, но я всё равно вижу как бы велась и ведётся торговля стоя на паузе...

    Ну или к примеру работают два или более, и хочется чтобы 1 из них встал на паузу, а другие нет. Сделать выборку по мейджику.
    Получаем у всех есть ордера и все торгуют, запустим скрипкт, все как торговали так и будут, но как только у какого-нибудь (скажем с мейджиком 555) станет 0 ордеров, меняем ему морду улыбки на грусть.
    Я думаю, что в таком случае логичнее это сделать средствами самого советника. Ввести булеву переменную pause, и открывать ордер только если НЕ pause. Нужно поставить сов на паузу - нажали F7 - поменяли pause на true. Все остальные функции советника - трейлинг, модификация и закрытие ордеров будут работать нормально.

    Вы не можете благодарить!
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

  6. #6
    Морской царь Аватар для 57-miracle
    Регистрация
    12.09.2012
    Адрес
    Россия
    Сообщений
    11,543
    Promo (¢)
    3,520
    Благодарности
    Получено: 7,154
    Отправлено: 3,508
    Цитата Сообщение от viktan Посмотреть сообщение
    Я думаю, что в таком случае логичнее это сделать средствами самого советника. Ввести булеву переменную pause, и открывать ордер только если НЕ pause. Нужно поставить сов на паузу - нажали F7 - поменяли pause на true. Все остальные функции советника - трейлинг, модификация и закрытие ордеров будут работать нормально.
    Задача, нажал паузу, он должен торговать всё равно, пока у него есть ордера в рынке, даже открывать новые, как только у него 0, то ставимся на паузу.
    По вашей методике мне что сидеть и контролировать 10 советников, когда у них будет 0 и ставить на паузу каждый ? Не пойдёт. да и менять код у 10-ти не выход... KLoAF прав, вроде задачка на первый взляд простая, но реализация её трудна.

    Вы не можете благодарить!

  7. #7
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,017
    Promo (¢)
    11,590
    Благодарности
    Получено: 2,425
    Отправлено: 1,315
    Цитата Сообщение от 57-miracle Посмотреть сообщение
    даже открывать новые
    Это, конечно, меняет дело. Но тоже вполне решаемо. В функции OnTick() каждого советника, пишет примерно следующее
    PHP код:
      if(pause)
    {
       
    work false;  // запрещаем работу
       
    for(int i 0OrdersTotal(), ++)
         {
            
    ticket =  OrderSelect(iSELECT_BY_POS);
            if(
    OrderMagicNumber() == extMagic// extMagic = магик данного советника
               
    work true// если есть открытые ордера - работу разрешаем.
         
    }

    Далее перед открытием ордера - проверяем переменную work, если она false - то не открываем.

    Ставим паузу, как только закрывается последний ордер - работа советника запрещается.
    Правка кода - минимальна, особенно если ордера открываются у вас в одном месте.

    Вы не можете благодарить!
    Последний раз редактировалось viktan; 10.12.2014 в 03:46. Причина: Подправил условие
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

  8. #8
    Морской царь Аватар для 57-miracle
    Регистрация
    12.09.2012
    Адрес
    Россия
    Сообщений
    11,543
    Promo (¢)
    3,520
    Благодарности
    Получено: 7,154
    Отправлено: 3,508
    Цитата Сообщение от viktan Посмотреть сообщение
    Это, конечно, меняет дело. Но тоже вполне решаемо. В функции OnTick() каждого советника, пишет примерно следующее

    Далее перед открытием ордера - проверяем переменную work, если она false - то не открываем.

    Ставим паузу, как только закрывается последний ордер - работа советника запрещается.
    Правка кода - минимальна, особенно если ордера открываются у вас в одном месте.
    Ну не в одном, в двух.... для первого ордера и последующих в разных местах, но это не беда.
    Значит мы имеем несколько ордеров по советнику, захотели вывести его из игры после того как он закончит. Ставим паузу на ходу, (где в опциях через f7 советника ?) советник продолжает свою работу по контролю уже открытых ордеров и открывает новые если нужно, как только у него стало 0, значит наша пауза становится уже жёсткой, то есть полной.

    - - - Добавлено - - -

    в простой версии решить задачку вроде не сложно, попробую покапать версию с виртуалом, для данного блока изменения не должны отобразится.... Когда он у меня стоит на паузе всё равно торгует, но только в виртуале, в реал сделки никогда не идут. Заодно видно, как бы он работал, пока стоял на паузе по отрисовке сделок на графике.

    Вы не можете благодарить!

  9. #9
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,017
    Promo (¢)
    11,590
    Благодарности
    Получено: 2,425
    Отправлено: 1,315
    На виртуальной торговле никак не должно сказаться, ведь мы только запрещаем физическое открытие ордеров.

    Вы не можете благодарить!
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

  10. #10
    Морской царь Аватар для 57-miracle
    Регистрация
    12.09.2012
    Адрес
    Россия
    Сообщений
    11,543
    Promo (¢)
    3,520
    Благодарности
    Получено: 7,154
    Отправлено: 3,508
    Цитата Сообщение от viktan Посмотреть сообщение
    Ставим паузу, как только закрывается последний ордер - работа советника запрещается.
    Слегка не понял.
    Вы хотите создать новый внешний параметр work с выбором false/true; в советнике и менять его по F7 ? Это не пойдёт.... Советников тьма, и если я по его мордашке не буду видеть что он на паузе и грустит, то я после и запустить его сразу не смогу. Я просто визуально запутаюсь в них, кто работает, а кто нет и стоит на паузе по данной функции.... Ведь они все всё равно будут улыбаться

    - - - Добавлено - - -

    Или тогда опять дописывать код, что при false выводить большую надпись на график этого советника об этом...

    Вы не можете благодарить!

Страница 1 из 2 1 2 ПоследняяПоследняя

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 19.05.2017, 11:50
  2. MQL5 OrderSend закрытие позиции
    от kofesutra в разделе Программирование на MQL
    Ответов: 0
    Последнее сообщение: 12.04.2017, 13:42
  3. Ответов: 9
    Последнее сообщение: 23.03.2016, 17:54
  4. Закрытие торгов в пятницу
    от molotok79 в разделе Архив. RoboForex
    Ответов: 10
    Последнее сообщение: 15.03.2013, 00:25
  5. Дневное закрытие(daily close)
    от FestiVaL в разделе Архив конкурса "CopyFX: Трейдеры"
    Ответов: 100
    Последнее сообщение: 23.02.2013, 11:45

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •