Автор |
Сообщение |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
Надо сначала сделать и проверить только для лонга, а уже потом добавлять шорт.... |
Код: |
ps = 1;
Opt1 = Optimize("MA 1 period", 7, 3, 97, 2);
Opt2 = Optimize("MA 2 period", 11, 5, 255, 2);
//Opt3 = Optimize("stop", .8, .2,1 , .2);
fMA1 = EMA(C, Opt1);
fMA2 = EMA(C, Opt2);
Buy = Ref(Cross(fMA1,fMA2),-1) ;
Sell = Ref(Cross(fMA2,fMA1),-1);
Short = False;
BuyPrice = Open;
Cover = False;
SellPrice = Open;
Buy = ExRem(Buy,Sell);Sell = ExRem(Sell,Buy);Short = ExRem(Short,Cover);Cover = ExRem(Cover,Short);
res = ValueWhen(Sell, SellPrice) - ValueWhen(Buy, BuyPrice); // Получение результата сделки
losess = 0;
for (i = 1; i < BarCount; i++)
{
if(Sell[i])
{
if ( res[i] < 0 )
losess++;
else
losess = 0;
if(losess == 0)
ps[i] = 1;
else if(losess == 3)
ps[i] = 2;
else if(losess == 4)
ps[i] = 3;
else if(losess >= 5)
ps[i] = 1;
else
ps[i] = ps[i-1];
}
else
ps[i] = ps[i-1];
}
SetPositionSize(ps,spsShares);
|
вот только лонг, все работает как надо. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Код: |
ps = 1;
Opt1 = Optimize("MA 1 period", 7, 3, 97, 2);
Opt2 = Optimize("MA 2 period", 11, 5, 255, 2);
//Opt3 = Optimize("stop", .8, .2,1 , .2);
fMA1 = EMA(C, Opt1);
fMA2 = EMA(C, Opt2);
Buy = Cover = Ref(Cross(fMA1,fMA2),-1) ;
Sell =Short = Ref(Cross(fMA2,fMA1),-1);
BuyPrice=CoverPrice = Open;
SellPrice=ShortPrice = Open;
Buy = ExRem(Buy,Sell);Sell = ExRem(Sell,Buy);Short = ExRem(Short,Cover);Cover = ExRem(Cover,Short);
res = ValueWhen(Sell, SellPrice) - ValueWhen(Buy, BuyPrice); // Получение результата сделки
res1 = ValueWhen(Short, ShortPrice) - ValueWhen(Cover, CoverPrice); // Получение результата сделки
losess = 0;
for (i = 1; i < BarCount; i++)
{
if(Sell[i])
{
if ( res[i] < 0 )
losess++;
else
losess = 0;
if(losess == 0)
ps[i] = 1;
else if(losess == 3)
ps[i] = 2;
else if(losess == 4)
ps[i] = 3;
else if(losess >= 5)
ps[i] = 1;
else
ps[i] = ps[i-1];
}
else
if(Cover[i])
{
if ( res1[i] < 0 )
losess++;
else
losess = 0;
if(losess == 0)
ps[i] = 1;
else if(losess == 3)
ps[i] = 2;
else if(losess == 4)
ps[i] = 3;
else if(losess >= 5)
ps[i] = 1;
else
ps[i] = ps[i-1];
}
else
ps[i] = ps[i-1];
}
SetPositionSize(ps,spsShares);
|
все работает. Но это я взял простую систему со средней.
До этого пробовал к канальной Дончана и там не получалось. Хотя все тоже самое делал... ВОзможно какие-то глюки с определением цен сделок |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Перенес систему на второй комп и там при тестах (с мартином) вылезают непонятки в лотами.
идет 1 лот потом 1 лот а потом 0.8 лотов 0.3 лота или 2.6 лота. Т.е. какие-то не целые кол-ва проскакивают. Не часто, но есть |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
Вторая машина качает данные с квика цериха.
А на первой машине данные с финама для тестов.
На первую перенес то, что накачалось с цериха и на первой стали там же появляться дробные лоты. Что-то с реальными данными не так.
Сейчас закачаю с финама свежие за неделю последние и проверю в чем отличие от цериха.
Min Shares =1 только убрала когда меньше 1, а такие как напрмиер 2.6 остались |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
ничего не пойму. Уже голова раскалывается от непоняток с этим мартином)
Теперь и на финамовских данных дробные лоты...Пару недель назад качал данные (с такими же настройками экспорта) и дробных нет на истории. А сейчас есть. Совпадают с церихом.
Олег можешь сделать бектест последнего кода тут с лонгами и шортом? на фьюче сбера например.? |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
короче все из-за volume!
Первы раз качал без него. Там нормально работает.
С цериха закачиваются данные с объемом. Сейчас с финама скачал с объемом и на этих данных с объемом вылазят сделки с дробными лотами...
почему так, не пойму |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Меню Symbol -> information
Round lot size. Поставить 1 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
Orange2000
Зарегистрирован: 15.10.2009
Сообщения: 185
|
000 писал(а): |
Меню Symbol -> information
Round lot size. Поставить 1 |
супер! Олег, ты бог Амиброкера)) |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
|