Автор |
Сообщение |
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
Здравствуйте.
Не могу понять, почему в оптимизаторе на всех периодах одни и те же значения?
Channel = Optimize ("Channel", 10,1,50,1);
Period = Optimize ("Period", 21, 1, 50, 1);
Buy = Cross(W1, W2);
Short = Cross(W2, W1); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А весь код показать? Не видя всего кода ничего нельзя сказать. Так как я вижу работать не будет вообще. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
... |
Последний раз редактировалось: maxign (Ср Авг 31, 2016 11:24 am), всего редактировалось 4 раз(а) |
|
Посмотреть профиль Отправить личное сообщение |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У тебя при оптимизации изменяются параметры Channel и Period
Код: |
Channel = Optimize ("Channel", 10,1,50,1);
Period = Optimize ("Average Periods", 21, 1, 50, 1); |
Они потом никак не влияют на сигналы.
Код: |
Buy = Cross(W1, W2);
BuyPrice = ceil(j / TickSize) * TickSize;
Short = Cross(W2, W1);
ShortPrice = floor(j / TickSize) * TickSize;
Sell = Short AND (W1 > EQ) ;
SellPrice = ShortPrice;
Cover = Buy AND (W1 < EQ);
CoverPrice = BuyPrice;
// Удаляем лишние сигналы
Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);
|
Кроме того у тебя в цене сделок указаны цены j=((O+H+L+C)+Ref(O+H+L+C, -1)+Ref(O+H+L+C, -2))/12;
В реальной торговле ты не сможешь совершить сделки по этим ценам.
А еще у тебя при закрытии сделок используются W1 < EQ а EQ равно 0. Смысл. Я попытался было поправить этот код для оптимизации, но это невозможно. Код совсем не годный. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
Действительно негодный код. Как создать грамотную систему для робота с тестером и оптимизатором? Может таковая уже у кого-нибудь имеется? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
Здравствуй Олег!
Посмотрел и удивился, какие цены у издательства на журналы. Пока качается 3,5 Гига архивов, подшаманил код:
CS = frac(Now(4)/100)*100; // текущие секунды
CM =floor( frac( Now(4)/10000)*100); // текущие минуты от 0-90
t=3000;// на какой секунде закрытия свечи формировать заявку
Buy = Cross(W1, W2);
BuyPrice = (CM == 40 OR CM==90) AND CS>t;
Short = Cross(W2, W1);
ShortPrice = (CM == 40 OR CM==90) AND CS>t;
Sell = Short AND (W1 > EQ) ;
SellPrice = ShortPrice;
Cover = Buy AND (W1 < EQ);
CoverPrice = BuyPrice;
Глянь, пожалуйста, будет или нет совершаться сделка на 50-ой минуте часа (таймфрейм графика 1 час)
По поводу EQ - это фильтр для открытия сделок.
С оптимизацией, пока отложим. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это код для тестирования или оптимизации?
Если да, то не будет сделка открываться на 50о минуте если фрейм час.
На часовом фрейме программе не известно какая цена была внутри. свечки. Известна только цена начала часа (Open) и окончания часа (Close)
Если надо совершать сделку на 50-ой минуте, то фрейм должен быть соответствующий 10 мин или меньше |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
Этот код для робота.
Пошагово: система, тестирование, оптимизация, фраймвок.
Вы правы, Олег! Но, оставим таймфрейм 1 час.
Получается проще:
Buy = Cross(W1, W2);
BuyPrice = Close;
Short = Cross(W2, W1);
ShortPrice = Close;
Sell = Short AND (W1 > EQ) ;
SellPrice = ShortPrice;
Cover = Buy AND (W1 < EQ);
CoverPrice = BuyPrice;
SetTradeDelays (0,0,0,0);SetTradeDelays (0,0,0,0);
SleepOpen = Param("Отступ на проскальзывание при откр. поз, пункт",0,0,1000);
SleepClose = Param("Отступ на проскальзывание при закр. поз, пункт",0,0,1000);
Добавил функцию SetTradeDelays и проскальзывание из учебника.
Верно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если код для робота то почему мы его обсуждаем в ветке про тестер? Да еще в теме с названием "оптимизация"
Роботу цены сделок (BuyPrice, ShortPrice, SellPrice, CoverPrice) указывать не надо.
SetTradeDelays() ему тоже пофигу. Ну конечно зависит от конкретной реализации робота. Робот, кстати, может и на часовах открывать сделку в 50 минут. Он будет ориентироваться на текущее время а не на график.
Про проскальзывание не понял.
Почитай про роботов
http://www.amisite.ru/afl/exp/exp.php |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
maxign
Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск
|
Понял Вас, Олег. Перелажу на другую ветку.
Робот просит оптимизацию.
Про проскальзывание - это защитный спред для гарантированного исполнения сделки. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Создавай новую тему в соответствующей ветке. Там продолжим. Мне есть что сказать по теме. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|