Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Bobi писал(а): |
а вот меня вопрос мучает: как код обрабатывается?
Т.е. нужно либо ВСЁ циклом делать или можно вперемешку с встроенными функциями? Ну типа
если я напишу
CondBuy = C>O;
CondSell = C<O;
for (i=1;i<BarCount;i++))
{
if (Buy[i])
Buy[i]=1;
и т.д и т.п.
}
Сколько раз мой цикл пересчитается в этом случае? |
Прямо так, как написано работать не будет вообще потому, что массив Buy используемый в цикле перед этим не определен.
А в общем все правильно. Так делать можно. Цикл будет выполнен один раз. Сначала будут подготовлены массивы CondBuy и CondSell, а протом будет выполнен цикл. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Bobi писал(а): |
000 писал(а): |
// ЕСЛИ НАПИСАТЬ ТАК, ТО ЦИКЛ БУДЕТ ВЫПОЛНЯТЬСЯ ДАЛШЕ И НА БАРЕ ВХОДА
// СООТВЕТСТВЕННО ПРОВЕРКА НА СТОПЫ БУДЕТ ВЫПОЛНЕНА И НА БАРЕ ВХОДА
[/code] |
А будет ли тестер учитывать выход на баре входа заложенный в цикле? У меня никак не хочет пока не включишь Allow same bar exit |
Тестеру всеравно откуда появился сигнал на сделку (из цикла или нет). Тестер эти сигналы предварительно подготавливает (удаляет лишние и т.п.) и если опция Allow same bar exit не активирована, то тестер сигнал на выход появившийся на баре входа удалит. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Bobi писал(а): |
000 писал(а): |
Вариант попроще
|
по-моему эти строчки ничего не дают, поскольку есть проверка на наличие открытиых позиций , или я не прав:
Код: |
else
{
Buy[i] = 0;
}
|
|
В принципе строки не нужны. Написал на всякий случай чтобы удалять "лишние", не используемые сигналы на покупку. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Bobi
Зарегистрирован: 07.06.2008
Сообщения: 46
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Олег, привет!!!
Скажи, плз, при использовании следующего кода Ами не должен брать противоположные сигналы, даже если пишу в настройках
Код: |
SetOption(ReverseSignalForcesExit,1); |
Код:
Код: |
InitEquity=IIf(Name()=="GBPJPY" OR Name()=="JPY",1000000,10000);
SetOption("AllowPositionShrinking",0); // Вкл (1) выкл (0)возможность открытия позиции, если денег не хватает
SetOption("InitialEquity",InitEquity); // Начальный капитал
SetOption("AllowSameBarExit",1); // Вкл (1) выкл (0) возможность выхода на баре входа
SetOption("ActivateStopsImmediately",1); // Вкл (1) выкл (0) активацию стопа на баре входа
SetOption("FuturesMode",1); // Вкл (1) выкл (0) режим "Тестирование фьючерсов"
SetOption("ReverseSignalForcesExit",1); // Вкл (1) выкл (0) вход в противоположную позицию при противп. сигнале
SetOption("PriceBoundChecking",0); // Вкл (1) выкл (0) проверку соответствия bp/sp/shp/cp диапазону h-l
SetTradeDelays(0,0,0,0); // Задержка торгов
PositionSize = 100;
MarginDeposit = 1;
RoundLotSize = 100;
PointValue = 100;
#include "C:\Program Files\AmiBroker\Formulas\Include\Settings\SpreadsFCID.afl"
#include "C:\Program Files\AmiBroker\Formulas\Custom\1_Zig-Zag\True_HiLo_peak_trough.afl"
Loss= Param("Loss",150,0,500,50)*TickSize;
Trail= Param("Trail",100,0,500,50)*TickSize;
Cb= Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs= Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));
L_p= 0;
S_p= 0;
Buy= Ref(H<mp,-1) AND H>=mp AND Ref(Cb,-1)==0;
BuyPrice= mp+spread;
period_l= BarsSince(Buy);
trail_l= IIf ( Buy, BuyPrice - Loss,
IIf ( period_l != 0, Ref(HighestSince(Buy,H-trail,1),-1),Null));
Sell= 0;
SellPrice= mt;
for(i=1;i<BarCount;i++)
{
if(! L_p)
{
if(Buy[i])
{
L_p=1;
pb=BuyPrice[i];
}
}
else
{
Buy[i]=0;
}
if(L_p)
{
if(L[i]<=pb-Loss AND period_l[i]==0)
{
Sell[i]=1;
SellPrice[i]=pb-Loss;
L_p=0;
}
else
if(L[i]<=trail_l[i-1] AND period_l[i]!=0)
{
Sell[i]=1;
SellPrice[i]=trail_l[i-1];
L_p=0;
}
}
}
Short= Ref(L>mt,-1) AND L<=mt AND Ref(Cs,-1)==0;
ShortPrice= mt;
period_s= BarsSince(Short);
trail_s= IIf( Short, ShortPrice + Loss,
IIf( period_s != 0, Ref(LowestSince(Short,L+trail,1),-1),Null));
u=0;
Cover= 0;
CoverPrice= O;
for(i=1;i<BarCount;i++)
{
if(! S_p)
{
if(Short[i])
{
S_p=1;
ps=ShortPrice[i];
}
}
else
{
Short[i]=0;
}
if(S_p)
{
if(H[i]>=ps+Loss-spread AND period_s[i]==0)
{
Cover[i]=1;
CoverPrice[i]=ps+Loss;
S_p=0;
}
else
if(H[i]>=trail_s[i-1]-spread AND period_s[i]!=0)
{
Cover[i]=1;
CoverPrice[i]=trail_s[i-1];
S_p=0;
u[i]=1;
}
}
}
/*
Plot(trail_s,"trail_s",colorRed,8+16);
Plot(trail_l,"trail_l",colorGreen,8+16);
Plot(zz,"ZZ",colorRed,1+4+32);
Plot(mt,"MT",colorGreen,1+4+32);
Plot(mp,"MP",colorBlue,1+4+32);
Plot(IIf(Buy,mp+n3,Null),"profitlong",colorRed,8+16);
Plot(IIf(Buy,mp-n2,Null),"losslong",colorRed,8+16);
Plot(IIf(Short,mt+n2,Null),"profit",colorRed,8+16);
Plot(IIf(Short,mt-n3,Null),"loss",colorRed,8+16);*/
Plot(Equity(),"qqq",colorRed,1); |
Заранее благодарен за ответ!
Вообщем он, подлюка, у меня на противоположные плевать хотел.
Смотри рисунок. Продал где надо, а вот покупает на второй - на уровне трэйлинга, а мне надо чтобы он вылез на первой свечке, то есть на уровне бая (синий). |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А в этом месте вообще есть сигнал Buy? Если посмотреть еще до цикла, сразу после
Код: |
Cb= Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs= Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));
L_p= 0;
S_p= 0;
Buy= Ref(H<mp,-1) AND H>=mp AND Ref(Cb,-1)==0;
BuyPrice= mp+spread;
|
Мне не очень нравится вот это место.
Код: |
Cb= Flip(Ref(H<mp,-1) AND H>=mp,mp!=Ref(mp,-1));
Cs= Flip(Ref(L,-1)>Ref(mt,-1) AND L<=mt,mt!=Ref(mt,-1));
|
ps Интересно почему этот долбаный форум вместо реверссигнал... рисует звездочки? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Bobi
Зарегистрирован: 07.06.2008
Сообщения: 46
|
а есть у кого нить примерчик с циклами где лонги и шорты одновременно учавствуют? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Bobi
Зарегистрирован: 07.06.2008
Сообщения: 46
|
Слушайте, гайсы, а как запретить тестеру совершать сделки первые n баров? А то меня он достал уже: упорно рвется в бой с первого бара, хоть я и говорю ему "for (i=5; i<BarCount; i++)" |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А ты сделай так
Код: |
for(i = 1; i < BarCount; i++)
{
if(i < 5)
Buy[i] = 0;
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Bobi
Зарегистрирован: 07.06.2008
Сообщения: 46
|
000 писал(а): |
А ты сделай так
Код: |
for(i = 1; i < BarCount; i++)
{
if(i < 5)
Buy[i] = 0;
}
|
|
ага, работает, только если i=0 (в for).
Но тестер всё равно стрелки рисует. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
ID
Советник
Зарегистрирован: 07.01.2008
Сообщения: 370
|
Цитата: |
А в этом месте вообще есть сигнал Buy? |
Я проверял - должен быть. ОК! Еще разик проверю!
Код: |
ps Интересно почему этот долбаный форум вместо реверссигнал... рисует звездочки? |
Это надо админа спросить |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Это надо админа спросить |
Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
000 писал(а): |
Цитата: |
Это надо админа спросить |
Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает. |
А что секс на форуме раньше был в запрете? |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Bobi
Зарегистрирован: 07.06.2008
Сообщения: 46
|
commenced писал(а): |
000 писал(а): |
Цитата: |
Это надо админа спросить |
Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает. |
А что секс на форуме раньше был в запрете? |
Ты осторожней со словами ("секс на форуме"), а то посетителей спугнешь |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Bobi писал(а): |
commenced писал(а): |
000 писал(а): |
Цитата: |
Это надо админа спросить |
Потму, что в этом слове есть буквосочетание секс. Исправил. Теперь показывает. |
А что секс на форуме раньше был в запрете? |
Ты осторожней со словами ("секс на форуме"), а то посетителей спугнешь |
Просто раньше с системами можно было только работать, а теперь еще и тарх..ся |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|