Автор |
Сообщение |
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
Хотелось бы для начала спросить, есть ли у кого работающий механизм работы на Range bar-ах (в режиме - TimeFrameMode(4)) как на родном (без сжатия и разжатия) TimeFrame так и с использованием функций … TimeFrameSet , TimeFrameRestore, TimeFrameExpand на базовом TimeFrame (1R или Ticks)
Заранее спасибо всем кто откликнется! |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
Попробую по другому спросить...
Исходные данные:
AmiBroker 5.40 Professional edition (version 5.40.3, Build date: Jun 9 2011)
Создана тиковая база с одним Symbol = RIH2
Создан один chart (Intraday=Tick)
в Information стоят следующие параметры:
Раздел Contract Specification:
Round Lot Size = 1
Margin Deposit = 1200
Tick size = 1
Point Value = 1
Edit Formula:
Код: |
_SECTION_BEGIN("test");
TimeFrameMode(4);
TimeFrame = 50; //Range Bars (50R)
TimeFrameSet(TimeFrame);
MAS = MA(Close, 5);
TimeFrameRestore();
TimeFrameMode(0);
MAS = TimeFrameExpand(MAS, TimeFrame);
Buy = Cover = MAS < Close;
Sell = Short = MAS > Close;
//--СНЯТИЕ ЛИШНИХ СИГНАЛОВ--
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);
//--ОТРИСОВКА ТОРГОВЫХ СИГНАЛОВ--
Plot(MAS, "MAS", 4, styleThick|styleOwnScale);
Plot(Close, "Price", 1, 64);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorGreen, 0,Low,-15);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorRed, 0,High,-15);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorBlue, 0,High,-25);
PlotShapes(IIf(Cover, shapeUpArrow, shapeNone),colorOrange, 0,Close,-40);
//--Исходный код Робота:------------
Buy = Ref(Buy, -1);
Sell = Ref(Sell, -1);
Short = Ref(Short, -1);
Cover = Ref(Cover, -1);
_SECTION_END();
//------------------------------------
|
Этот код работает не правильно. На ролике error.mp4 (архив error_.zip) видно что происходит с сигналами Buy,Sell,Short,Cover.
Если же работать с временными TimeFrame-ами (TimeFrameMode(0)), а не с Range Bar-ами, такого эффекта не наблюдается. |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
TimeFrameExpand не работает в режиме Range Bars. Не знаю в чем дело и как обойти... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
Значит пока что будем работать без переключений.. =)
В продолжении темы.
При работе с range bar-ами не надо забывать что бары могут сформироваться с одним временем... это затрудняет использование такого механизма как вход или выход по предыдущей свече:
Код: |
Buy = Ref(Buy, -1);
Sell = Ref(Sell, -1);
Short = Ref(Short, -1);
Cover = Ref(Cover, -1); |
Мы не можем предположить сколько может в один момент нарисоваться свечей. Допустим их сформировалось 3. А по условиям стратегии сигнал сработал на 1-й свече из 3 сформировавшихся с одним временем.. и дальнейшая обработка сигнала Ref(*, -1); пропустит этот сигнал.
Пока что в голову приходит мысль о том что необходимо постоянно проверять (искать новые сигналы) в цикле от бара на котором был ранее исполненный сигнал (Buy или Short) до последнего бара. Если нашли новый сигнал проверять чтобы время бара на котором он был было не текущим и исполнять его... Запомнив опять номер бара с которого будем искать, новый сигнал. |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я с ранже не работаю. Но, насколько знаю и попробовал никак одновременно не может сформироваться несколько свечек. Для формирования новой свечки должен обязательно придти новый тик.
Конечно они могут придти достаточно быстро, так что робот пропустит момент...
Ну не так сложно растянуть сигнал на все бары до противоположного (Flip), а исполнение сигнала в новом роботе записывается в файл и повторное исполнение не возможно. Так, что больших проблем не вижу. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Виталий
Зарегистрирован: 23.03.2021
Сообщения: 48
|
Чот не могу организовать рендж-бары ((
Тиковый экспорт из Квика
Меняю на кастом фрмат отображения "R" - идут тики
Пишу программно, как в 1-ом посте, серавно тики.
Тики мне так то не нужны, но у квика нет экспорта секундных баров, только минутные. Поэкспериментировал с минутками, тоже результата нет (((
ПыСы. наколупал на импортных форумах. оказалось под новую базу не прописал параметры тикера, как то тиксайз например ))
теперь еще одна проблема возникла. как определить бар, завершающий дневную сессию. раньше на 5м это был бар 18-40 и с него начинался отсчет индюка, а теперь со временем биде и хз как амику сказать, что надо брать за точку отсчета бар, максимально близкий к 18-45... он может быть типатам 18-17 или 18-26 какойнить теперь |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Настройки базы данных -> IntraDay settings. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|