Все что касается реальной торговли![нужна помощь] - страница 2

 
Да, алерты можно оставить только на критических ошибках. Все остальное перевести в Print.
 

Есть предложение по одному из пунктов заданного сложного вопроса. А имено по реквотам.

Когда открывается/закрывается ордер, мы указываем в коде величину проскальзывания (максимальное отклонение от запрошеной цены). Но дело в том, что далеко не все инструменты на четырёхзнаке ходят по 1 пункту минимального изменения цены. Например, золото. Да и пятизнак подкидывает проблем с этим. Поэтому чтоб не сталкиваться с реквотами можно организовать в коде автоматическое распознавание по сколько пунктов ходит инструмент за тик, и параметр Slippage (проскальзывания) сделать автматически рассчитываемым. И пусть для этого автопилота работает некий коэффициент в пользовательских (extern) переменных. Например, коэффициент ставим = 10. При инициализации код распознал, что евробакс ходит минимально по одному пункту за тик. Он вычисляет проскальзывание = минимальное движение (1 пункт), умноженное на коэффициент (на 10). в результате в ту же функцию OrderSend() попадёт проскальзывание в 10 пунктов.

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

Такой подход позволит избежать реквот или совсем исключить их.

 

Фигня все это, с такими кодами нет гарантии открытия даже в тестере. А долбить сервер запросами... Ничего хорошего из этого не выйдет.

1) все цены == нормализация

2) Учитываем стоплевел (если есть)

3) Тип открытия (ЕЦН/НДД)

4) контроль наличия денег на счету для откртия

5) контроль правильности цен

6) проскальзывание = 2 спреда

7) грамотный и полный лог торговых ошибок

и прочия, прочия, прочия.

я уже выкладывал свои торговые функции, вот повтор. не супер, но пока текущий вариант.

Файлы:
 
FAQ:

Фигня все это, с такими кодами нет гарантии открытия даже в тестере. А долбить сервер запросами... Ничего хорошего из этого не выйдет.

1) все цены == нормализация

2) Учитываем стоплевел (если есть)

3) Тип открытия (ЕЦН/НДД)

4) контроль наличия денег на счету для откртия

5) контроль правильности цен

6) проскальзывание = 2 спреда

7) грамотный и полный лог торговых ошибок

и прочия, прочия, прочия.

я уже выкладывал свои торговые функции, вот повтор. не супер, но пока текущий вариант.


Будем запиливать
 

orb:

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

Буду благодарен, полезным исходникам, а также пояснениям когда и какие проблемы возникают.

Стесняюсь спросить прямо, в кодобазе хоть пробовали искать? Там минимум несколько вариантов таких библиотек, если мне не изменяет склерос. :) Я когда создавал модуль под себя и свои потребности - нашёл там много интересного. Особенно что касается обработки ошибок.

В частности, вот эта забавная функция - помню, что создана на основе кода TheXPert, но точно уже не помню откуда именно я его взял:

// Классификация кода ошибки. 
// Возвращает true, если можно попытаться повторить операцию.
bool trade.can_retry(int error) {
  switch(error) {
    case ERR_INVALID_PRICE :
    case ERR_PRICE_CHANGED :
    case ERR_OFF_QUOTES    :
    case ERR_REQUOTE       :
    case ERR_NO_CONNECTION :
      return(true);
  }
  
  return(false);
}
 
Тут как минимум -- ERR_TRADE_CONTEXT_BUSY -- не хватает. Но да, было похожее.
 
TheXpert:
Тут как минимум -- ERR_TRADE_CONTEXT_BUSY -- не хватает. Но да, было похожее.
0:ОК, спасибо, добавлю - вроде бы действительно надо, судя по описанию. Помню, что не всё добавлял из того что было - но сейчас уже не помню подробностей, почему. :)
 
FAQ:

Фигня все это....

6) проскальзывание = 2 спреда

Не в обиду, но сим готов не согласиться. Во-первых, не всё фигня. Во вторых (и этого достаточно), нарвался советник на инструмент, у которого спред равен нулю (а это не редкость). И полетели на сервер его приказы открыть/закрыть ордер с нулевым проскальзыванием. Красота.., но только на очень спокойном рынке :).
 
это была реплика не в ваш адрес, а к коду представленному выше. А по поводу плавающего слиппажа, то лучшее решение это использовать значение спреда (удвоенного спреда). если с этими значениями ордер не открывают на быстром рынке, то увеличивать его бесполезно - все равно не откроют, нужно ждать.
Причина обращения: