Три дороги...

 

ИНТРО.

Есть желание работать исключительно "внутри дня".

Для чего пишу свой советник...

Трейдинг несложен, десяток инструментов, причём не все сразу,

одна-две сделки на инструмент, вначале дня открываю, тралится,

перед ролловером всё закрывается в принудительном порядке...

*

Основной вопрос по трейлингу, точнее КАК будет лучше его развести.

Ибо как известно в момент времени можно послать один приказ...

Вижу три варианта перекладывания стратегии в код:

*

1. Один общий на всё советник, где трейлинг обрабатывается скажем Кимовским тралом.

2. Разнести трал несколькими советниками с параметром тралить "свои символы"

3. Разнести стратегию по своим инструментам со своим тралом...

*

Работаю пока над вариантом №1, однако по №2 и №3 смутные терзают сомнения насчёт

чёткости отработки если применить "семафор" скажем по свободному потоку:

if(IsTradeContextBusy()) Print("Торговый поток занят. Подождите");
//Возвращается TRUE, если поток для выполнения торговых операций занят, иначе возвращает FALSE.

дожидаясь следуюего(щих) тика возможны большие задерки и пропуски приказов...

 

я тралю каждым советником любой символ с выставлением флага запрета

 

тики разных пар приходят несинхронно, модификация обычно без реквотов, если советники быстрые, ордеров мало,

то они "никогда" не встретятся.

 
Korey писал(а) >>

если советники быстрые, ордеров мало,

то они "никогда" не встретятся.

Да впринципе быстрые...

хотя есть вкупе с желанием использовать №1, т.е. один общий советник

с возможно единственным вынесеным блоком "анализа рынка" во вне...

(это на случай если будут тормоза)

А "рекомендации аналитика" передавать через Глобальные переменные.

*

№2 и №3 интересны тем, что есть возможность отключать трал

на отдельных инструментах...

Однако, это уже полуручная работа + множество советников.

Некомильфо...

*

по №1

Работа советника построена таким образом, что инструменты жестко прописаны

скажем в буфере: string UseSym[]={"EURUSD","","",,,,""};

Не проблема создать и буфер "блокировки", скажем: string UNuseSym[]={"EURUSD","","",,,,""};

Есть ли вожможность добавть "проверку на отсутстствие в чёрном списке" для оператора IF ?

{for (int i=0; i<OrdersTotal(); i++)
  {if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {if (OrderSymbol()==Symbol()) 
       {if (нет в чёрном списке) ...
 
kombat >>:

Есть ли вожможность добавть "проверку на отсутстствие в чёрном списке" для оператора IF ?

Навскидку:
надо задать эталонный массив - где есть все названия
а потом сравнивать заданный массив с эталонным

но это слишком в обшем виде идея

Причина обращения: