Автор |
Сообщение |
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
000 писал(а): |
Так у тебя робот торгует?
Тогда все не так сложно. Просто надо дать ему знать, что на этом баре сделка уже была. и повторять ее не надо.
Как это сделать зависит от робота. Скажи какой у тебя. |
У меня самопал, он в основном на VBScript, или что именно ты имеешь в виду?
Я попробую exremspan, должно помочь
Просто лень заморачиваться и вычислать разницу во времени... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Робот не в Ами?
Дело в том, что если в ами, то ничего не сделаешь. Только смотреть был ли уже сигнал на этом баре. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
000 писал(а): |
Робот не в Ами?
Дело в том, что если в ами, то ничего не сделаешь. Только смотреть был ли уже сигнал на этом баре. |
Конечно в Ами, просто самопал...
Смотреть как именно, время заявки в логах и вычислть разницу во времени? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тут почитай |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
В общем похоже что тестер совсем неправильно строит обьемы текущих баров....
В тестeре у меня все сделки имеют таймстамп в формате ХХ:ХХ:59
Соответственно, из этого следует что тестер делает выплеск обьема в последнюю секунду бара.
А на реале у меня входы совсем по другому, вместо того чтобы входить в последнюю секунду, он входит на выплеске обьема
Причем у меня в формуле стоит один из фильтров Second()>50
Почему то он не раборает! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не правильно понимаешь.
ХХ:ХХ:59 это просто время бара на котором был вход.
Готоый бар Ами никак не делит. Бар для Ами целый и неделимый. Он входит на этом баре по заказанной цене, а ХХ:ХХ:59 это просто указание, что вход был именно на этом баре. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
хмм... Я чета запутался...
Так, значит если у меня сигнал срабатывает при достижении определенного обьема, а у Ами бар целый и неделимый, как тестер решает на какой цене внутри бара определенный обьем достигнут?
Edit:
В общем я тут еще поигрался, и забил на анализ текущего бара, а то тестер ерунду показывает...
Сделки на графике которые рисует PlotShape в тестере отсутсвуют, и т.п.
Переписал все на анализ предыдущего бара... Стало получше. Посмотрим на след неделе как будет торговать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Для ами бар это точка. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
В общем я еще посморел внимательно на сделки, и анализ предыдущего бара не решил проблему тестера.
Рассмотрим на конкретном примере.
На анализе предыдущего бычьего бара поступил сигнал на вход. Тоесть, на открытии пошел сигнал.
После входа, свеча дернулась вверх на 500п. (вынос по стопу)
Значит тестер пишет, что вошел на этой свече 1 раз по цене закрытия, а не открытия как собственно было бы на самом деле. И пишет что словил
прибыль, хотя график показывает что даже там скорей всего был повторный вынос по стопу.
А тепереь расмотрим что дествительно было бы на этой свече. На цене открытия первый заход, лось (стоп 250п), потом повторный
заход, еще лось, и скорей всего третий заход и лось.
Причем использование ExRem не меняет вообще ничего, тест идентичный с ним и без него.
Выводы из всего этого что тестер всегда заходит по лучшей цене 1 раз, но на самом деле это фуфлогон. Он подглядывает
в будущее похоже... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
АУФФ
Я похоже понял в чем дело!
Код: |
BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);
ShortPrice=ValueWhen(Short,C);
CoverPrice=ValueWhen(Cover,C);
|
Вот из за этого появляются повторные сигналы внутри бара.
Ну и соответсвенно тестер входит по цене закрытия бара. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
В общем при вот такой конструкции сделки в тестере почти полностью совпадают со стрелками которые рисуются на график.
Почему почти я не знаю, стрелок на графике больше чем сделок в тестере. Не подскажешь в чем тут может быть дело?
Код: |
Buy = buyCond1 AND buyCond2;
Short = shortCond1 AND shortCond2;
Cover = Buy;
Sell = Short;
ApplyStop( stopTypeLoss, stopModePoint, 250, 0);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0);
BuyPrice=ValueWhen(Buy,O);
SellPrice=ValueWhen(Sell,O);
ShortPrice=ValueWhen(Short,O);
CoverPrice=ValueWhen(Cover,O);
BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);
Plot( Close, "Price", colorBlack, styleCandle );
PlotShapes( IIf( Buy, shapeUpArrow, shapeNone), IIf( Buy, colorBlue, shapeNone ), 0, IIf( Buy, BuyPrice, shapeNone ) );
PlotShapes( IIf( Short, shapeDownArrow, shapeNone), IIf( Short, colorYellow, shapeNone ), 0, IIf( Short, ShortPrice, shapeNone ) );
GraphXSpace = 5;
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ничего не понял.
Вот так
Код: |
BuyPrice=ValueWhen(Buy,O);
SellPrice=ValueWhen(Sell,O);
ShortPrice=ValueWhen(Short,O);
CoverPrice=ValueWhen(Cover,O);
BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);
|
для тестера делать категорически нельзя. Я даже не могу понять, что ты имел ввиду этим кодом. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Ну как что, как мне нарисовать стрелку на цене открытия следующего бара?
У нас есть сигналы Buy,Short,Sell,Cover
Я перешел на анализ предыдущего бара
Значит, сигнал возникает на открытии бара.
Соответственно, какая цена сигнала
Код: |
BuyPrice=ValueWhen(Buy,O);
SellPrice=ValueWhen(Sell,O);
ShortPrice=ValueWhen(Short,O);
CoverPrice=ValueWhen(Cover,O);
Plot( Close, "Price", colorBlack, styleCandle );
PlotShapes( IIf( Buy, shapeUpArrow, shapeNone), IIf( Buy, colorBlue, shapeNone ), 0, IIf( Buy, BuyPrice, shapeNone ) );
PlotShapes( IIf( Short, shapeDownArrow, shapeNone), IIf( Short, colorYellow, shapeNone ), 0, IIf( Short, ShortPrice, shapeNone ) );
|
..... рисует идеально, сделки в тестере 90% совпадают
Потом чтобы отправить сделки мне нужен BuySignal при наличии которого сделки будут отправлены по рынку
Код: |
BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);
if(OpenBuy==0 AND OpenSell==0 AND BuySignal ) { //no open orders and BUY Signal
SendBuy();
AlertIf( BuySignal, "SOUND C:\\Windows\\Media\\Ding.wav", "Audio alert", 2 );
}
|
Судя по твоей реакции я понимаю что я брежу, можешь объяснить? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Просто
Код: |
BuyPrice = Open;
...
|
Это для тестера вход по цене открытия.
А вот это
Код: |
BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);
|
Годится для робота. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Если честно эта замена повлияла негативно на результат, в тестере стало еще меньше сделок.
В общем довольно прикольно получилось, робот на реале входит строго по стрелкам, это я уже наблюдал.
Теперь надо посмотреть как будет срабатывать ApplyStop на реале.
Почему в тестере сделок на 10% меньше мы видимо никогда не узнаем. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|