У вас не стоит Flash Player
Настройки
#79903 - Sun Oct 09 2016 09:17 AM Как правильно написать код безубытка
vyudin77 Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
выводите ваши incomeLong и шорт в окно лога и смотрите что вы насчитали.
_________________________
__


Наверх
#79923 - Mon Oct 10 2016 02:03 PM Re: Как правильно написать код безубытка [Re: ra81]
vyudin77 Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
вы все еще не сделали вывод в лог.
longPos.OpenProfit(i) чему равен?
Используйте отладку и вывод в лог. И не тратьте время больше на задавание вопросов smile. Все за 5 минут будете решать.
_________________________
__


Наверх
#79960 - Mon Oct 10 2016 06:14 PM Re: Как правильно написать код безубытка [Re: ra81]
vyudin77 Offline
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]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
ага. вроде того smile.
Только все равно неправильно. вы ставите стоп тогда цена ушла а когда вернулась ваш стоп снимется. надо додумать smile
_________________________
__


Наверх
#79966 - Tue Oct 11 2016 12:14 AM Re: Как правильно написать код безубытка [Re: ra81]
Fresto Offline
journeyman

Registered: Wed Jul 27 2016
Записи: 84
Когда вошел в позицию Лонг, выставил простой стоп и цену прохода 150 пунктов в нашу сторону.
Code:
var stopL = LongPos.EntryPrice - 150;
var incomeLong = LongPos.EntryPrice +150;

Если мы в позиции, то выходим по обычному стопу
Code:
LongPos.CloseAtStop(i+1,stopL, Slippage, "BBU");

Но, если цена изменился на 150 пунктов в нашу сторону, то изменяем стоп.
Code:
if(high[i] > incomeLone)
stopL = LongPos.EntryPrice + 50;

Наверх
#79993 - Wed Oct 12 2016 08:17 AM Re: Как правильно написать код безубытка [Re: Fresto]
vyudin77 Offline
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");
}

Наверх


Moderator:  ViL, sar