|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
Jackson
Зарегистрирован: 12.08.2013
Сообщения: 18
|
Имеется следующая система с доливками, но заключается первая сделка, далее после сигнала выхода нет полного выхода, в следствии чего, дальнейшие сделки не заключаются. Помогите разобраться.
Код: |
stop = Optimize("stop",10,1,20,3);
profit = Optimize("profit",0.2,0.05,1,0.05);
Buy = Ref(Cross(MA(C,10),MA(C,20)),-1);
Sell=0;
Short = 0;
Cover=0;
at = ATR(14);
pos=0;
addlevel =0;
start_e = 0;
e=Equity(1);
for( i = 20; i < BarCount; i++ )
{
if( pos == 0 AND Buy[ i ] )
{
BuyPrice[i]=O[i];
pos=1;
addlevel = BuyPrice[i]-at[i];
start_e = e[i];
}
else Buy[ i ] = 0; // remove excess buy signals
if( pos==1 AND 100*(e[ i ]-start_e)/e[i] >= profit*stop ) //long take profit
{
Sell[ i ] = 1;
SellPrice[i]=C[i];
pos=0;
}
if(pos==1 AND 100*(e[ i ]-start_e)/e[i] <= -1 * stop) //long stop loss
{
Sell[ i ] = 1;
SellPrice[i]=C[i];
pos=0;
}
if( pos==1 AND L[ i ] <= addlevel ) //long scale in
{
Buy[ i ] = sigScaleIn;
BuyPrice = addlevel;
addlevel = L[i]- at[i];
}
}
SetPositionSize(10,spsPercentOfEquity*(Buy == 1 OR Short == 1));
SetPositionSize(100,spsPercentOfPosition *(Cover == 1 OR Sell == 1));
SetPositionSize( 30, spsPercentOfPosition * ( Buy == sigScaleIn OR Short == sigScaleIn ) ); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ты задаешь правила системы
Код: |
Buy = Ref(Cross(MA(C,10),MA(C,20)),-1);
Sell=0;
Short = 0;
Cover=0; |
и далее запускаешь функцию Equity().
Т.е. Equity как вошло в сделку один раз, так в ней и сидит (выходов не предусмотрено).
Обрати внимание, выхода нет. Дальше может происходить что угодно. Например кончилось бабло. Сделка закрылась и эквити стала горизонтальной линией. Соответственно далее в цикле участки профита и стопа не срабатывают и сдека в цикле не закрывается. Твоя ошибка в том, что видимо ты считаешь, что Equity() выдает результат по сделкам после цикла. Это не так. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Jackson
Зарегистрирован: 12.08.2013
Сообщения: 18
|
Разобрался, следует исправить параметр функции:
на
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну можно и так. В таком режиме функция Equity не удаляет сигналы когда система в позиции. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |