Опять про трейлинг стоп)))

 

всем привет, вот такой вопрос: допустим есть стратегия по RSI, открывающая (или закрывающая) позиции по пересечении уровня в 50 (приводить код думаю не имеет смысла, всем и так ясно). Все работает прекрасно, однако тольок на длинным трендах и без трейлинг стопа, потому надо: сделать так, чтобы после закрытия позиции, когда RSI откатывается назад к отметке 50, позиция больше не открывалась (не смотря на то, что основное правило RSI > RsiBuyLevel остается в силе).


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

1) проверять прошлый ордер по MODE_HISTORY и если он был противоположным то ждать (т.е. ордер закрылся, после чего идет проверка if только что закрывшийся был long, значит следюущий будет только short и с соблюдением условий уже для коротких позицийй). Вроде бы должно работать, однаок слождно предположить что будет, если где-то проскочит ошибка - все ордеры будут открываться в противоположном направлении


2) использовать что-то типа булевой переменной или константы


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

 
sashasan >>:

всем привет, вот такой вопрос: допустим есть стратегия по RSI, открывающая (или закрывающая) позиции по пересечении уровня в 50 (приводить код думаю не имеет смысла, всем и так ясно). Все работает прекрасно, однако тольок на длинным трендах и без трейлинг стопа, потому надо: сделать так, чтобы после закрытия позиции, когда RSI откатывается назад к отметке 50, позиция больше не открывалась (не смотря на то, что основное правило RSI > RsiBuyLevel остается в силе).


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

1) проверять прошлый ордер по MODE_HISTORY и если он был противоположным то ждать (т.е. ордер закрылся, после чего идет проверка if только что закрывшийся был long, значит следюущий будет только short и с соблюдением условий уже для коротких позицийй). Вроде бы должно работать, однаок слождно предположить что будет, если где-то проскочит ошибка - все ордеры будут открываться в противоположном направлении


2) использовать что-то типа булевой переменной или константы


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


непонятно а как все это связано с трейлингом? и вообще что в вашем понимании трейлинг стоп?
 
sashasan >>:


2) использовать что-то типа булевой переменной или константы


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


При открытии ордера - просто запомните его направление. а затем при попытке снова открыть ордер проверьте это послденее направление. И если оно было противоположное, то смело открывайте... 

if (RSI>RSI_BuyLvl && prevDir!=OP_BUY)

{

 OrderSend(OP_BUY...)

 prevDir=OP_BUY;

}


if (RSI<RSI_SellLvl && prevDir!=OP_SELL)

{

 OrderSend(OP_SELL...)

 prevDir=OP_SELL;

}
 
sergeev >>:


При открытии ордера - просто запомните его направление. а затем при попытке снова открыть ордер проверьте это послденее направление. И если оно было противоположное, то смело открывайте...


ПРОСТО И ГЕНИАЛЬНО ...

спасибо.

 
xeon >>:


непонятно а как все это связано с трейлингом? и вообще что в вашем понимании трейлинг стоп?

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