Автор |
Сообщение |
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
как сделать, чтобы робот исполнял сделки внутри свечи, сразу по поступлению сигнала, без задержек?
я заменил Buy = LastValue(Ref(Buy,-1)) на Buy = LastValue(Buy)
и другие аналогично.
возникает 2 проблемы:
1. пропадающие сигналы
2. если два сигнала на одной свече, то у них одинаковый идентификатор - и в файл они не запишутся
как объяснить амиброкеру, что если сделка совершена, то не надо убирать сигнал? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Никак. Это у тебя косяк системы. Ошибка в логике определения сигнала. Если хочешь чтобы сигналы исполнялись не дожидаясь закрытия бара, то совершенно нельзя использовать для расчета сигнала цену закрытия. Только High и Low и то внимательно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
хммм
вот я хочу, чтобы у меня произошла продажа (покупка) при пересечении некоторого уровня (llv(...))
ииии?
если я буду дожидаться, пока бар закроется,
то поезд уже уедет, всмысле я по хорошей цене не зайду.
а если не зайду, то потом "уже не надо".
и что же тогда делать????
и вообще, а как сам амиброкер в Еквити определяет когда сигнал "вдруг" исчез? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
===
вот кстати, всегда интересовало
Buy = LastValue(Buy);
т.е. мы получаем число из массива.
а ничего, что у нас переменная числа и массива одинаково называются?
мы тут весь массив не заполняем последним значением? |
Последний раз редактировалось: Novi4ok (Ср Июл 01, 2009 2:53 am), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
а как вообще Ами анализирует одну свечу?
постоянно ее сканирует каждую секунду?
да.
а результаты предыдущего сканирования где-то можно сохранить в переменной или массиве?
если да (ну хоть бы да, хоть бы да!)
можно, конечно, и в файле - но эт геморой и падение надежности системы.
итак,
у нас есть массив-триггер.
если Low бара ниже уровня, а Close выше, то триггер срабатывает (=1) и больше не меняет своего значения до конца бара, даже если потом цена будет ниже уровня!!!!
а в условие пишем:
Buy = trigger; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
как бы я сделал с файлом
(чисто теоретически, т.к. с файлами не умею работать).
файл - это нечто ВЕЧНОЕ И НЕЗЫБЛЕМОЕ.
делаем так:
Buy1 = C>Level;
Buy2 = прочитай из файла - если есть запись на покупку с номером текущей транзакции, тогда покупай;
Buy = Buy1 OR Buy2;
ВУАЛЯ, вот и все решение!
но чтение файла каждую секунду... это бррррр
теперь бы файл заменить виртуальным файлом, а попросту массивом-триггером.
как бы это сделать... хм |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
первый способ
хранить эту инфу в виндовском Клипборде
но это мегаизврат!
функции
ClipboardGet
ClipboardSet |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
ДА!!!!!!!!!!!!!!!
Я СДЕЛАЛ ЭТО!!!!!
StaticVarSet("buy1", 1);
bb = StaticVarGet("buy1");
Buy = bb;
вопрос только, остается ли статическая переменная между запусками АА (полагаю да)
второй вопрос, как ее сбрасывать в 0, в начале каждого бара.
хмммм....
эээ еще проблема:
статическая переменная ОДНА.
и меняя ее значение, меняю ли я условие на покупку не только текущего бара, но и прошлых? а их значения мне нужны неизменными!
здесь мы опять сталкиваемся с эээ нестандартной методой анализа амиброкера = когда он анализирует сразу весь период всем массивом!
или робота это не касается - раз мы говорим ему анализировать только последний бар? (надеюсь ДА!) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
OOO писал:
Цитата: |
А запись в .tri не должна сдублироваться, т.е. робот на одном баре не должен делать несколько сделок |
почему бы не разрешить? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
ну как вам предложение со статик переменной?
есть ли подводные камни?
и будет ли Equity работать в режиме реального времени, если на одном баре куча сделок купи-продай
например, по сигналу купили. потом выбило по стопу - продали. потом опять поступил сигнал налонг - что мешает купить? вот как Еквити на это посмотрит? если поставить галку allow same bar exit (single bar trade).
и надо переделать индикаторы, добавить n, чтобы в один день много сделок было, а то он же ж в файл не запишет. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Novi4ok писал(а): |
хммм
вот я хочу, чтобы у меня произошла продажа (покупка) при пересечении некоторого уровня (llv(...))
ииии?
если я буду дожидаться, пока бар закроется,
то поезд уже уедет, всмысле я по хорошей цене не зайду.
а если не зайду, то потом "уже не надо".
и что же тогда делать????
и вообще, а как сам амиброкер в Еквити определяет когда сигнал "вдруг" исчез? |
Задача как раз в том, чтобы сигнал не исчезал. Если сигнал по закрытию, то сделку можно совершать только в момент закрытия свчки. В противном случае грошь цена тестированию такой стратегии. По тесту типа сделки не было, а в реале вот она....
А если сигнал Hi/Lo и предполагает мгновенное исполнение (например пробитие уровня) то и исчезать он не должен. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Novi4ok писал(а): |
===
вот кстати, всегда интересовало
Buy = LastValue(Buy);
т.е. мы получаем число из массива.
а ничего, что у нас переменная числа и массива одинаково называются?
мы тут весь массив не заполняем последним значением? |
Нормально. В Ами по существу всё массивы. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Novi4ok писал(а): |
а как вообще Ами анализирует одну свечу?
постоянно ее сканирует каждую секунду?
да.
а результаты предыдущего сканирования где-то можно сохранить в переменной или массиве?
если да (ну хоть бы да, хоть бы да!)
можно, конечно, и в файле - но эт геморой и падение надежности системы.
итак,
у нас есть массив-триггер.
если Low бара ниже уровня, а Close выше, то триггер срабатывает (=1) и больше не меняет своего значения до конца бара, даже если потом цена будет ниже уровня!!!!
а в условие пишем:
Buy = trigger; |
А как это протестировать?
Или торговать без теста? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Novi4ok писал(а): |
ДА!!!!!!!!!!!!!!!
Я СДЕЛАЛ ЭТО!!!!!
StaticVarSet("buy1", 1);
bb = StaticVarGet("buy1");
Buy = bb;
вопрос только, остается ли статическая переменная между запусками АА (полагаю да)
|
Между запусками АА скорее всего да (точно не знаю) а вот если Ами закрыть, то и переменная пропадет.
Novi4ok писал(а): |
второй вопрос, как ее сбрасывать в 0, в начале каждого бара.
хмммм....
|
Напимер сравнивать время предпоследнего бара и текущее. Если текущее НЕМНОГО больше, то новый бар открылся недавно.
Novi4ok писал(а): |
эээ еще проблема:
статическая переменная ОДНА.
и меняя ее значение, меняю ли я условие на покупку не только текущего бара, но и прошлых? а их значения мне нужны неизменными!
|
В последних бетах статическая переменная является обычным Амишным массиво со всеми вытекающими |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Novi4ok писал(а): |
OOO писал:
Цитата: |
А запись в .tri не должна сдублироваться, т.е. робот на одном баре не должен делать несколько сделок |
почему бы не разрешить? |
Потому, что тогда робот не будет знать отправил ли он уже текущую заявку и будет отправлять одну и ту же заявку при каждом сканировании. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|