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



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

СообщениеДобавлено: Вт Апр 23, 2013 8:53 pm Ответить с цитатой Вернуться к началу

На основе плагина отсюда:

http://forex.kbpauk.ru/showflat.php/Cat/0/Number/146914/an/0/page/0#Post146914

Простая система на 15 мин:

Код:

RoundLotSize = 1;   
PointValue = 1;   
TickSize = 1;   

SetBarsRequired(1000000);
TimeFrameSet(in15Minute);
k = 1;
Brick = k*ATR(10);
reverse = 1;
TimeFrameRestore();
HourBrick = TimeFrameExpand(brick, in15Minute);

//Простой ренко с размером кирпича в HourBrick (используется как массив, а не последнее значение)
RO =  adGraph_Renko(Hourbrick,reverse);
//Простой ренко с фиксированным размером кирпича 100 pips
//RO =  adGraph_Renko(0.0100,reverse);

//Логарифмический ренко с размером кирпича в 1%
//RO = adGraph_RenkoLog(.01,1);

//Функция длл инициализует следующие переменные

C = RKC;
O = RKO;
//На графике отображаются мин и максимальные значения цены
//Чтобы сделать классические ренко замените на то что в комментарии
H = RKH;//Max(RKC,RKO);
L = RKL;//min(RKC,RKO);

Buy = Cover = C > O AND Ref(C,-1) > Ref(O,-1);
Short = Sell = C < O AND Ref(C,-1) < Ref(O,-1);

Buy = Ref(Buy, -1);
Sell = Ref(Sell, -1);
Short = Ref(Short, -1);
Cover = Ref(Cover, -1);

//RO - переменая содержит ту цену из-за которой нарисовался новый кирпич или случился переворот
Plot(ro, "real open", colorBlue,1);

BuyPrice = ro;                 
SellPrice = ro;                 
ShortPrice = ro;                 
CoverPrice = ro; 
 
Equity(1,0);

PlotShapes(IIf(Buy,shapeUpArrow,0),5,0);                       
PlotShapes(IIf(Sell,shapeHollowDownArrow,0),4,0);                       
PlotShapes(IIf(Short,shapeDownArrow,0),4,0);                       
PlotShapes(IIf(Cover,shapeHollowUpArrow,0),5,0);
//Plot(LastValue(O),"lastOpen",colorGreen,1+styleNoLabel);
//SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle+64);


Результаты нереальные, явно какое-то заглядывание

Может, кто-нибудь объяснит как с такими графиками работать?
Посмотреть профиль Отправить личное сообщение
Alex14



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

СообщениеДобавлено: Ср Апр 24, 2013 6:01 am Ответить с цитатой Вернуться к началу

Конкретно этот плагин не смотрел, но "болезнь" большинства "Ренко" в том, что кубики могут пропадать или строются сразу несколько, а у тебя берет по цене разворота. Кстати, навскидку, проблема именно в некорректности цен входа/выхода. Думаю бывалые тебе может еще чего подскажут)

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Апр 24, 2013 8:48 am Ответить с цитатой Вернуться к началу

Кирпич ренко рисуется не в соответствии с датой/временем когда он образовался. Соответственно и сигнал возникающий на кирпиче в Ами попадает совсем не в то место на обычном графике, а цену АА берет с обычного графика. Поэтому, вероятно вся проблема в том, что совсем не верные цены сделок. Для исправления надо
1. Явно прописать цены BuyPrice, SellPrice, ShortPrice и CoverPrice. При этом взять их не с OHLC а с ренко.
2. Отключить PriceBoundChecking. По умолчанию Ами проверяет чтобы цена сделки входила в диапазон H-L и если она выше или ниже, то тестер сдвигает ее до H или L.

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



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

СообщениеДобавлено: Ср Апр 24, 2013 11:59 am Ответить с цитатой Вернуться к началу

000 писал(а):
Кирпич ренко рисуется не в соответствии с датой/временем когда он образовался. Соответственно и сигнал возникающий на кирпиче в Ами попадает совсем не в то место на обычном графике, а цену АА берет с обычного графика. Поэтому, вероятно вся проблема в том, что совсем не верные цены сделок. Для исправления надо
1. Явно прописать цены BuyPrice, SellPrice, ShortPrice и CoverPrice. При этом взять их не с OHLC а с ренко.
2. Отключить PriceBoundChecking. По умолчанию Ами проверяет чтобы цена сделки входила в диапазон H-L и если она выше или ниже, то тестер сдвигает ее до H или L.


Этот плагин, как я понимаю, дает в том числе реальную цену открытия кирпича - почему, собственно, я его и решил использовать - в кодах ренко на afl это малопонятно. BuyPrice, SellPrice, ShortPrice и CoverPrice прописал как раз эту цену. Но видимо и это неверно - тестер берет периодически какие-то вообще левые цены, которые вообще ничему не соответствуют.

PriceBoundChecking - отключил, результаты вроде стали ближе к реальности, но все равно не то.

Буду разбираться дальше Crying or Very sad
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Апр 24, 2013 5:29 pm Ответить с цитатой Вернуться к началу

Напиши как ты сделал цены сделок.

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



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

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

000 писал(а):
Напиши как ты сделал цены сделок.


В коде выше:
Код:

//RO - переменая содержит ту цену из-за которой нарисовался новый кирпич или случился переворот
Plot(ro, "real open", colorBlue,1);

BuyPrice = ro;                 
SellPrice = ro;                 
ShortPrice = ro;                 
CoverPrice = ro;


Но это тоже что-то не то
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Апр 24, 2013 8:53 pm Ответить с цитатой Вернуться к началу

Вроде правильно.
А конкретно что не то можешь описать?

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



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

СообщениеДобавлено: Ср Апр 24, 2013 11:17 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Вроде правильно.
А конкретно что не то можешь описать?

По месяцам доходность +200 %, -200% и т.д., максимальная просадка -90%, и т.д. Фьюч сбера, тест с 2008 года, а тестирует только с мая 2012, ну может конкретно это из-за того, что шкала не времянная.
Там где -200% - июнь 2012, цены на графике и стрелочки рисует вроде там где надо, а в тестере цены проскакивают явно из 2008-2009. За последние периоды - совпадает. В общем, какое-то несоответствие...
Я посмотрел еще код renko, здесь на форуме, более рабочий, на afl, потестировал - ничего особенного, так что думаю, даже если плагин заставить работать, будет примерно также.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Апр 24, 2013 11:19 pm Ответить с цитатой Вернуться к началу

Ну фиг его знает. Может плагин косячит....

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



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

СообщениеДобавлено: Сб Апр 27, 2013 3:50 pm Ответить с цитатой Вернуться к началу

Попробуй вот такой код, тут совпадает ценник и ренко по времени, и посмотри что получится.
Код:
SetBarsRequired( 100000, 0 );
K = 1;//Optimize( "K", 1, 0.8, 2, 0.1 );
Smooth =  10;//Optimize( "Smooth", 10, 7, 20, 1 );

/*?????? ???*/
j = 0;
Up[j] = H[0];
Dn[j] = L[0];
BricksUp = 0;
BricksDn = 0;
//Brick[j] = K*(H[0] - L[0]);

Brick = K * ATR( Smooth );


for ( i = 1; i < BarCount; i++ )
{

    if ( C[i] > Up[i-1] + Brick[i] )
    {
        BricksUp[i] = floor( ( C[i] - Up[i-1] ) / Brick[i] ) * Brick[i];
        Up[i] = Up[i-1] + BricksUp[i];
        Dn[i] = Up[i] - Brick[i];
    }
    else if ( C[i] < Dn[i-1] - Brick[i] )
    {
        BricksDn[i] = floor( ( Dn[i-1] - C[i] ) / Brick[i] ) * Brick[i];
        Dn[i] = Dn[i-1] - BricksDn[i];
        Up[i] = Dn[i] + Brick[i];
    }
    else
    {
        Up[i] = Up[i-1];
        Dn[i] = Dn[i-1];
    }
}
Plot( Up , "UP", colorRed );
Plot( Dn , "DN", colorBlue );
Plot(C, "", colorBlack, styleCandle);

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
BRTO



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

СообщениеДобавлено: Пн Апр 29, 2013 10:36 am Ответить с цитатой Вернуться к началу

Alex14 писал(а):
Попробуй вот такой код, тут совпадает ценник и ренко по времени, и посмотри что получится.

Спасибо! Выглядит интересно, попробую протестировать
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen