#79903 - Sun Oct 09 2016 09:17 AM
Как правильно написать код безубытка
|
journeyman
Registered: Sun May 26 2013
Записи: 84
|
Подскажите пожалуйста в чем ошибка? Наверно неправильно написанно в чем ошибка не пойму для шорта срабатывает на открытии следующего бара, для лонга вообще не срабатывает //Безубыток шорт var incomeShort = shortPos.EntryPrice * 0.985; var buShort = shortPos.OpenProfit(i) > incomeShort ? shortPos.EntryPrice * 0.9995 : 0; shortPos.CloseAtStop(i + 1, buShort, Slippage, "SBU"); //Безубыток лонг var incomeLong = longPos.EntryPrice * 1.0015; var buLong = longPos.OpenProfit(i) > incomeLong ? longPos.EntryPrice * 1.0005 : 0; longPos.CloseAtStop(i + 1, buLong, Slippage, "BBU");
|
Наверх
|
|
|
|
#79913 - Mon Oct 10 2016 09:43 AM
Re: Как правильно написать код безубытка
[Re: vyudin77]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
выводите ваши incomeLong и шорт в окно лога и смотрите что вы насчитали.
_________________________
__
|
Наверх
|
|
|
|
#79923 - Mon Oct 10 2016 02:03 PM
Re: Как правильно написать код безубытка
[Re: ra81]
|
journeyman
Registered: Sun May 26 2013
Записи: 84
|
Для РТС получается примерно 150 пунктов
//Безубыток лонг var incomeLong = longPos.EntryPrice + 150; var buLong = longPos.OpenProfit(i) > incomeLong ? longPos.EntryPrice + 50 : 0; longPos.CloseAtStop(i + 1, buLong, Slippage, "BBU");
Даже если так написать все равно не работает
|
Наверх
|
|
|
|
#79930 - Mon Oct 10 2016 04:05 PM
Re: Как правильно написать код безубытка
[Re: vyudin77]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
вы все еще не сделали вывод в лог. longPos.OpenProfit(i) чему равен? Используйте отладку и вывод в лог. И не тратьте время больше на задавание вопросов . Все за 5 минут будете решать.
_________________________
__
|
Наверх
|
|
|
|
#79960 - Mon Oct 10 2016 06:14 PM
Re: Как правильно написать код безубытка
[Re: ra81]
|
journeyman
Registered: Sun May 26 2013
Записи: 84
|
Да, Вы как всегда правы, так проще и понятнее (с выводом в лог) Так работает!!! //Безубыток лонг var incomeLong = longPos.EntryPrice + 150; if(high[i] > incomeLong) longPos.CloseAtStop(i + 1, longPos.EntryPrice + 50, Slippage, "BBU");
Спасибо!
|
Наверх
|
|
|
|
#79965 - Mon Oct 10 2016 11:11 PM
Re: Как правильно написать код безубытка
[Re: vyudin77]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
ага. вроде того . Только все равно неправильно. вы ставите стоп тогда цена ушла а когда вернулась ваш стоп снимется. надо додумать
_________________________
__
|
Наверх
|
|
|
|
#79966 - Tue Oct 11 2016 12:14 AM
Re: Как правильно написать код безубытка
[Re: ra81]
|
journeyman
Registered: Wed Jul 27 2016
Записи: 84
|
Когда вошел в позицию Лонг, выставил простой стоп и цену прохода 150 пунктов в нашу сторону. var stopL = LongPos.EntryPrice - 150;
var incomeLong = LongPos.EntryPrice +150; Если мы в позиции, то выходим по обычному стопу LongPos.CloseAtStop(i+1,stopL, Slippage, "BBU"); Но, если цена изменился на 150 пунктов в нашу сторону, то изменяем стоп. if(high[i] > incomeLone)
stopL = LongPos.EntryPrice + 50;
|
Наверх
|
|
|
|
#79993 - Wed Oct 12 2016 08:17 AM
Re: Как правильно написать код безубытка
[Re: Fresto]
|
journeyman
Registered: Sun May 26 2013
Записи: 84
|
Так тоже не всегда срабатывает. Работает вот так
// расчитаем уровень, пересечение которого ценой трактуется как сигнал на смещение стопа в безубыток var stopMovePrice = longPos.EntryPrice + Income;
// если мы ушли выше уровня, или в прошлом пересекали уровень, тогда ставим безубыток. if (high[i] > stopMovePrice || stopMoveFlagL) { stopMoveFlagL = true; // не забываем активировать флаг передвижки стопа! var stop = longPos.EntryPrice + BU; longPos.CloseAtStop(i + 1, stop, Slippage, "BS"); } // иначе ставим простой стоп лосс else { var stop = longPos.EntryPrice - StopSL; longPos.CloseAtStop(i + 1, stop, Slippage, "BS"); }
|
Наверх
|
|
|
|
|
|