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



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Пт Авг 19, 2016 10:05 am Ответить с цитатой Вернуться к началу

Здравствуйте.
Не могу понять, почему в оптимизаторе на всех периодах одни и те же значения?

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

СообщениеДобавлено: Пт Авг 19, 2016 10:43 am Ответить с цитатой Вернуться к началу

А весь код показать? Не видя всего кода ничего нельзя сказать. Так как я вижу работать не будет вообще.

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



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Пт Авг 19, 2016 11:06 am Ответить с цитатой Вернуться к началу

...


Последний раз редактировалось: maxign (Ср Авг 31, 2016 11:24 am), всего редактировалось 4 раз(а)
Посмотреть профиль Отправить личное сообщение
maxign



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Пт Авг 19, 2016 12:15 pm Ответить с цитатой Вернуться к началу

Как её оптимизировать?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Авг 19, 2016 2:51 pm Ответить с цитатой Вернуться к началу

У тебя при оптимизации изменяются параметры 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
Откуда: Иркутск

СообщениеДобавлено: Пн Авг 22, 2016 12:45 pm Ответить с цитатой Вернуться к началу

Действительно негодный код. Как создать грамотную систему для робота с тестером и оптимизатором? Может таковая уже у кого-нибудь имеется?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Авг 22, 2016 3:09 pm Ответить с цитатой Вернуться к началу

Попробу посмотри тут

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



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Пн Авг 29, 2016 9:12 am Ответить с цитатой Вернуться к началу

Здравствуй Олег!

Посмотрел и удивился, какие цены у издательства на журналы. Пока качается 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

СообщениеДобавлено: Пн Авг 29, 2016 3:08 pm Ответить с цитатой Вернуться к началу

Это код для тестирования или оптимизации?
Если да, то не будет сделка открываться на 50о минуте если фрейм час.
На часовом фрейме программе не известно какая цена была внутри. свечки. Известна только цена начала часа (Open) и окончания часа (Close)
Если надо совершать сделку на 50-ой минуте, то фрейм должен быть соответствующий 10 мин или меньше

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



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Вт Авг 30, 2016 9:12 am Ответить с цитатой Вернуться к началу

Этот код для робота.
Пошагово: система, тестирование, оптимизация, фраймвок.

Вы правы, Олег! Но, оставим таймфрейм 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

СообщениеДобавлено: Вт Авг 30, 2016 12:56 pm Ответить с цитатой Вернуться к началу

Если код для робота то почему мы его обсуждаем в ветке про тестер? Да еще в теме с названием "оптимизация"

Роботу цены сделок (BuyPrice, ShortPrice, SellPrice, CoverPrice) указывать не надо.
SetTradeDelays() ему тоже пофигу. Ну конечно зависит от конкретной реализации робота. Робот, кстати, может и на часовах открывать сделку в 50 минут. Он будет ориентироваться на текущее время а не на график.

Про проскальзывание не понял.

Почитай про роботов

http://www.amisite.ru/afl/exp/exp.php

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



Зарегистрирован: 17.10.2011
Сообщения: 12
Откуда: Иркутск

СообщениеДобавлено: Ср Авг 31, 2016 10:55 am Ответить с цитатой Вернуться к началу

Понял Вас, Олег. Перелажу на другую ветку.

Робот просит оптимизацию.

Про проскальзывание - это защитный спред для гарантированного исполнения сделки.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Авг 31, 2016 11:16 am Ответить с цитатой Вернуться к началу

Создавай новую тему в соответствующей ветке. Там продолжим. Мне есть что сказать по теме.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen