Советники: TradingBoxing

 

TradingBoxing:

В качестве вдохновения выступил код TradingBoxing. Но в данном коде осталась только идея - абсолютно вся реализации на MQL5, на новых торговых классах.

Торговая панель имеет только один входной параметр magic number - уникальный идентификатор эксперта.

Общий вид торговой панели:

TradingBoxing

Для отображения объемов (для позиций и для отложенных ордеров) немного изменен стандартный класс CSpinEdit и сохранен под новым именем CSpinEditDouble. К сожалению, наследованием создать не получилось, так как пришлось изменять члены класса объявленные как "private".

Как видно из названия класса, он создан для отображения типа данных double. Поэтому был дописан метод DisplayedDigits - задание точности отображения текста в элементе управления.

Также текстовое поле в данном элементе управления сделано редактируемым. Например, это может пригодится, когда нужно ввести цену или объем, сильно отличающийся от значения в текстовом поле. Для того чтобы текст из текстового поля запоминался как значение, в класс CSpinEditDouble добавлен метод EndEdit:

   int               m_digits;              // displayed digits
   //---
   void              EndEdit() { Value(StringToDouble(Text())); }

public:
                     CSpinEditDouble(void);

Этот метод запоминает введенный текст как значение.


Вызывается метод EndEdit из OnEvent класса CSpinEditDouble:

//+------------------------------------------------------------------+
//| Common handler of chart events                                   |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CSpinEditDouble)
  ON_EVENT(ON_CLICK,m_inc,OnClickInc)
  ON_EVENT(ON_CLICK,m_dec,OnClickDec)
  ON_EVENT(ON_END_EDIT,m_edit,EndEdit)
EVENT_MAP_END(CWndContainer)

Для того чтобы торговые приказы обрабатывались как можно быстрее (даже на очень спокойном рынке, когда тики приходят в большими промежутками), каждый клик по кнопке торговой панели принудительно вызывает внутренний обработчик CTradingBoxingDialog::OnTick().

Автор: Vladimir Karputov

 
не помешало бы добавить close_profit,close_loss,reverse, а в целом спасибо за ваши труды
 
xe4:
не помешало бы добавить close_profit,close_loss,reverse, а в целом спасибо за ваши труды
Сюда многое можно добавить, но тогда панель превратится в очень сложного (в плане настроек) монстра :)

 
Vladimir Karputov:
Сюда многое можно добавить, но тогда панель превратится в очень сложного (в плане настроек) монстра :)

Уважаемый господин Владимир,

TradingBox не работал на Backtest, но его легко изменить, чтобы работать в Backtest тоже !!!

событие OnChart не работает на BT.
Но статус кнопок изменяется, и вам нужно проверить статус «OnTick» и запустить событие кнопки.
 

Добрый день,


Есть ли возможность использования данного скрипта для Бак Теста?
Я установил его, но в Бак Тесте не работает.


Либо подскажите где поискать )))


Заранее спасибо!

 
wizds:


Эта панель только для онлайн-торговли. В тестере панели не работают.
 

Крутой эксперт спс.

Из ошибок заметил 

1) Панель не уделяет за собой при выключении терминала, после включения новая панель создается а части старой лежат. 

2)  Использования OnTick на мой взгляд все же излишне при OnChartEvent

 

НЕ работает