Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Система Dual Thrust Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Пн Мар 22, 2010 4:23 pm Ответить с цитатой Вернуться к началу

Заинтересовала меня на пауке вот эта система
http://forex.kbpauk.ru/showflat.php/Cat/0/Number/272348/an/0/page/1#Post272348
Помогите, пожалуйста сопоставить код от Омеги и Ами, в Омеге все понятно, а в Ами я только недавно начал разбираться, поэтому не могу сориентироваться.
Вот код от Омеги:
Код:

Inputs: K1(.5),K2(.5),Mday(1),Nday(1);
Vars: BuyRange(0), SellRange(0);
Vars: BuyTrig(0),SellTrig(0);
Vars: HH(0),LL(0),HC(0),LC(0);

If CurrentBar > 1 Then Begin
 HH = Highest(High,Mday);
 HC = Highest(Close,Mday);
 LL = Lowest(Low,Mday);
 LC = Lowest(Close,Mday);
 
If (HH - LC) >= (HC - LL) Then Begin
 SellRange = HH - LC;
End Else Begin
 SellRange = HC - LL;
End;

 HH = Highest(High,Nday);
 HC = Highest(Close,Nday);
 LL = Lowest(Low,Nday);
 LC = Lowest(Close,Nday);

If (HH - LC) >= (HC - LL) Then Begin
 BuyRange = HH - LC;
End Else Begin
 BuyRange = HC - LL;
End;

BuyTrig =  K1*BuyRange;
SellTrig =  K2*SellRange;

 If MarketPosition = 0 Then Begin
  Buy at  Open of next bar + BuyTrig  Stop;
  Sell at Open of next bar - SellTrig Stop;
 End;

 If MarketPosition = -1 Then Begin
  Buy at  Open of next bar + Buytrig Stop;
 End;

 If MarketPosition = 1 Then Begin
  Sell at  Open of next bar - SellTrig Stop;
 End;

End;


А вот от Ами (тоже опубликован на пауке):
Код:

BDay=Optimize( "BDay", 10, 1, 16, 1 );
SDay=Optimize( "SDay", 10, 1, 16, 1 );
 Kl=0.5;


BuyRange=SellRange=0;

HHb = HHV(High,BDay);
HCb = HHV(Close,BDay);
LLb = LLV(Low,BDay);
LCb = LLV(Close,BDay);

HHs = HHV(High,SDay);
HCs = HHV(Close,SDay);
LLs = LLV(Low,SDay);
LCs = LLV(Close,SDay);



for( i =1+Max(BDay,SDay); i < BarCount; i++ )
{
if ((HHb[i-1] - LCb[i-1]) >= (HCb[i-1] - LLb[i-1])) BuyRange[i] = HHb[i-1] - LCb[i-1];
 else
BuyRange[i] = HCb[i-1] - LLb[i-1];


if ((HHs[i-1] - LCs[i-1]) >= (HCs[i-1] - LLs[i-1])) SellRange[i] = HHs[i-1] - LCs[i-1];
 else
SellRange[i] = HCs[i-1] - LLs[i-1];

};

BuyTrig = Kl*BuyRange;
SellTrig = Kl*SellRange;
ColorCh0=colorLightGrey;
Band_Top=O+BuyTrig;
Band_Bot=O-SellTrig;

Plot(Band_Top, "Band_Top", ColorCh0, 1);
Plot(Band_Bot , "Band_Bot", ColorCh0, 1);


Buy=Cover=Cross(H,Band_Top);BuyPrice=CoverPrice=Band_Top;

Short=Sell=Cross(Band_Bot,L); ShortPrice=SellPrice=Band_Bot;



PlotShapes( (Buy == 1) * shapeHollowUpArrow, colorBrightGreen, 0,BuyPrice);
PlotShapes( (Buy == sigScaleIn ) * shapeSmallUpTriangle, colorBrightGreen, 0,BuyPrice,1);
PlotShapes( (Buy == sigScaleOut) * shapeSmallDownTriangle, colorBrightGreen, 0,BuyPrice,1);
PlotShapes( (Short == 1) * shapeHollowDownArrow, colorRed, 0, ShortPrice);
PlotShapes( (Short == sigScaleIn ) * shapeSmallDownTriangle, colorRed, 0,ShortPrice,1);
PlotShapes( (Short == sigScaleOut ) * shapeSmallUpTriangle, colorRed, 0, ShortPrice,1);



PlotShapes( (Sell== 1) * shapeHollowDownArrow, colorBlue, 0,SellPrice);
PlotShapes( (Sell == 2) * shapeSmallCircle, colorBlue, 0,SellPrice,0);// stop
PlotShapes( (Sell == 5) * shapeSmallCircle, colorLightBlue, 0,SellPrice,0);// stop
PlotShapes( (Sell == 3) * shapeSquare, colorBlue, 0, SellPrice,0);// profit
PlotShapes( (Cover == 1) * shapeHollowUpArrow, colorOrange, 0, CoverPrice);
PlotShapes( (Cover == 2) * shapeSmallCircle, colorOrange, 0, CoverPrice,0);// stop
PlotShapes( (Cover == 3) * shapeSquare, colorOrange, 0,CoverPrice);// limit
PlotShapes( (Cover == 5) * shapeSmallCircle, colorLightOrange, 0,CoverPrice,0);// limit
 


обязателен ли здесь цикл for, вроде в коде омеги он не используется и смотрел на код системы по Ларри Вильямсу в соседней ветке, там тоже нет циклов.
Посмотреть профиль Отправить личное сообщение
Tim



Зарегистрирован: 12.02.2010
Сообщения: 245
Откуда: Дмитров

СообщениеДобавлено: Пн Мар 22, 2010 7:28 pm Ответить с цитатой Вернуться к началу

А самому хотя бы начать сопоставлять никак что ли? Smile

_________________
УСПЕХ — это движение от неудачи к неудаче БЕЗ ПОТЕРИ ЭНТУЗИАЗМА.
- Уинстон Черчилль
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Мар 22, 2010 10:21 pm Ответить с цитатой Вернуться к началу

Омега в принципе изначально гоняет цикл. Изи просматривает бары слева направо. AFL работает совсем не так.
С кодом помочь не возьмусь, т.к. в изи совсем не шарю.
Тем более если приведенный код работает...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Ср Мар 24, 2010 6:12 pm Ответить с цитатой Вернуться к началу

Код:
BDay=Optimize( "BDay", 1, 1, 16, 1 );
SDay=Optimize( "SDay", 1, 1, 16, 1 );
Kl=0.5;

HHb = HHV(Ref(High,-1),BDay);
HCb = HHV(Ref(Close,-1),BDay);
LLb = LLV(Ref(Low,-1),BDay);
LCb = LLV(Ref(Close,-1),BDay);

HHs = HHV(Ref(High,-1),SDay);
HCs = HHV(Ref(Close,-1),SDay);
LLs = LLV(Ref(Low,-1),SDay);
LCs = LLV(Ref(Close,-1),SDay);

BuyRange = IIf( (HHB - LCB) >= (HCB - LLB), HHB - LCB, HCB - LLB);
SellRange = IIf( (HHS - LCS) >= (HCS - LLS), HHS - LCS, HCS - LLS);

BuyTrig = Kl*BuyRange;
SellTrig = Kl*SellRange;

ColorCh0=colorLightGrey;

Band_Top=O+BuyTrig;
Band_Bot=O-SellTrig;

Plot(Band_Top, "Band_Top", ColorCh0, 1);
Plot(Band_Bot , "Band_Bot", ColorCh0, 1);

Buy = Cover = Cross(H,Band_Top); BuyPrice = CoverPrice = Band_Top;
Short = Sell = Cross(Band_Bot,L); ShortPrice = SellPrice = Band_Bot;

PlotShapes( (Buy == 1) * shapeHollowUpArrow, colorBrightGreen, 0,BuyPrice);
PlotShapes( (Buy == sigScaleIn ) * shapeSmallUpTriangle, colorBrightGreen, 0,BuyPrice,1);
PlotShapes( (Buy == sigScaleOut) * shapeSmallDownTriangle, colorBrightGreen, 0,BuyPrice,1);
PlotShapes( (Short == 1) * shapeHollowDownArrow, colorRed, 0, ShortPrice);
PlotShapes( (Short == sigScaleIn ) * shapeSmallDownTriangle, colorRed, 0,ShortPrice,1);
PlotShapes( (Short == sigScaleOut ) * shapeSmallUpTriangle, colorRed, 0, ShortPrice,1);

PlotShapes( (Sell== 1) * shapeHollowDownArrow, colorBlue, 0,SellPrice);
PlotShapes( (Sell == 2) * shapeSmallCircle, colorBlue, 0,SellPrice,0);// stop
PlotShapes( (Sell == 5) * shapeSmallCircle, colorLightBlue, 0,SellPrice,0);// stop
PlotShapes( (Sell == 3) * shapeSquare, colorBlue, 0, SellPrice,0);// profit
PlotShapes( (Cover == 1) * shapeHollowUpArrow, colorOrange, 0, CoverPrice);
PlotShapes( (Cover == 2) * shapeSmallCircle, colorOrange, 0, CoverPrice,0);// stop
PlotShapes( (Cover == 3) * shapeSquare, colorOrange, 0,CoverPrice);// limit
PlotShapes( (Cover == 5) * shapeSmallCircle, colorLightOrange, 0,CoverPrice,0);// limit
Посмотреть профиль Отправить личное сообщение ICQ Number
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Чт Мар 25, 2010 5:04 pm Ответить с цитатой Вернуться к началу

Воот... Smile
У меня было подозрение что можно и без цикла обойтись, но АФЛ еще не освоил пока.
Спасибо Smile
Посмотреть профиль Отправить личное сообщение
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Чт Мар 25, 2010 5:11 pm Ответить с цитатой Вернуться к началу

Не понятно зачем вводится второй оптимизируемый параметр Sday, если его убрать то система упрощается, и выдаёт даже чуть более лучшие результаты...
Посмотреть профиль Отправить личное сообщение ICQ Number
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Пт Мар 26, 2010 9:06 am Ответить с цитатой Вернуться к началу

Я насколько понял, в системе идет разделение для шортов и лонгов, т.е. отдельно оптимизируется входы для лонгов и шортов.
Посмотреть профиль Отправить личное сообщение
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Пт Мар 26, 2010 12:07 pm Ответить с цитатой Вернуться к началу

Nero Wolfe писал(а):
Я насколько понял, в системе идет разделение для шортов и лонгов, т.е. отдельно оптимизируется входы для лонгов и шортов.
Что-то я не заметил этого разделения вот тут:
Код:
Buy = Cover = Cross(H,Band_Top); BuyPrice = CoverPrice = Band_Top;
Short = Sell = Cross(Band_Bot,L); ShortPrice = SellPrice = Band_Bot;

И не знаю почему, но мне кажется логичнее сделать один BDay и сделать его постоянным, а оптимизировать как раз таки коэффициент Kl...
Посмотреть профиль Отправить личное сообщение ICQ Number
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Пт Мар 26, 2010 12:37 pm Ответить с цитатой Вернуться к началу

Разделение по моему вот тут
Код:
BuyRange = IIf( (HHB - LCB) >= (HCB - LLB), HHB - LCB, HCB - LLB);
SellRange = IIf( (HHS - LCS) >= (HCS - LLS), HHS - LCS, HCS - LLS);

таким образом, получается что верхняя и нижняя границы могут быть построены с разными параметрами, т.е. отстоять от цен на разное расстояние.
Согласен, что коэф. К оказывает большее влияние на систему. Я при оптимизации вообще делал BDay=SDay
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen