Автор |
Сообщение |
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
Для открытия длинной позы использую кнопку
buy_button=ParamTrigger("Buy","Buy");
В хелпе про функцию ParamTrigger написано:
Normally ParamTrigger will return zero (0) but when button in the param
window is pressed then it will refresh the chart and ParamTrigger will return
1 (one) for this single execution (further refreshes will return zero, until the
button is pressed again)
Например работаем на минутном графике.
Жму на кнопку.
Она отрабатывает корректно - в tri-файл записывается очередная строка заявки.
Смотрю на последнюю свечку. Ами данные получает, свечка изменяется.
Жму еще раз на кнопку. Смотрю три-файл. Новая заявка не добавляется.
Дожидаюсь пока правая свеча полностью сформируется и начнется формирование новой свечи.
Жму на кнопку - теперь в три-файл заявка записывается корректно.
Т.е. получается, что функция ParamTrigger отрабатывает только один
раз в пределах тайм-фрейма?
Можно ли побороть это и отрабатывать функцию при каждом нажатии кнопки?
У меня пока в голове только один вариант - принудительно обновлять график (раз в секунду например).
Возможно ли такое сделать и поможет ли это?
И какие могут быть еще варианты? |
_________________ Андрей
Your my your... |
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Почему не пользуетесь трудом админа?
Код: |
PARAMTRIGGER
- создать триггер (кнопку) в диалоге параметров Исследования / Индикаторы
(AFL 2.70)
СИНТАКСИС ParamTrigger( ''Name'', ''Button text'')
ВОЗВРАЩАЕТ КОНСТАНТУ
ФУНКЦИЯ Создаёт триггер (кнопку) в диалоге параметров.
При добавлении в код индикатора ParamTrigger - создается кнопка в окне параметров. В нормальном состоянии ParamTrigger возвращает ноль (0). При нажатии кнопки в окне параметров функция ParamTrigger начинает возвращать 1 (one) до тех пор пока кнопка не будет нажата снова.
ПРИМЕР trigger = ParamTrigger("Place Order", "Click here to place order");
if( trigger )
{
// тут ваш код
}
СМОТРИ ТАКЖЕ
Ссылки:
ParamTrigger использована в следующих формулах в библиотеке AFL: |
При нажатии кнопки в окне параметров функция ParamTrigger начинает возвращать 1 (one) до тех пор пока кнопка не будет нажата снова. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
В оригинальном хелпе написано:
Normally ParamTrigger will return zero (0) but when button in the param
window is pressed then it will refresh the chart and ParamTrigger will return
1 (one) for this single execution (further refreshes will return zero, until the
button is pressed again)
Что можно перевести, как:
В нормальном состоянии ParamTrigger возвращает 0, но в момент нажатия
кнопки в окне параметров, функция перерисовывает график и
возвращает 1 конкретно для этого действия (дальнейшие перерисовки
возвращают 0 до тех пор пока кнопка не будет нажата еще раз). |
_________________ Андрей
Your my your... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре. Каждая запись имеет свой ID который зависит в т.ч. и от бара на котором был сигнал и если запись с таким ID уже есть, то новая не добавляется |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
000 писал(а): |
Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре. |
Так и есть, спасибо! |
_________________ Андрей
Your my your... |
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Torino писал(а): |
000 писал(а): |
Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре. |
Так и есть, спасибо! |
Прошу прощения, когда читал ваш пост не обратил внимание что 2 заявки вы хотели получить на одном баре. Но хотелось бы получить ответ, так как действует кнопка, нажал и массиву Х начинает присваиваться 1 в до тех пор пока не нажмеш его еще раз, т.е. как переключатель или все таки в массив записывается 1 только в момент нажатия, в англицком сам 0 |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
commenced писал(а): |
как действует кнопка, нажал и массиву Х начинает присваиваться 1 в до тех пор пока не нажмеш его еще раз, т.е. как переключатель или все таки в массив записывается 1 только в момент нажатия, в англицком сам 0 |
Судя по хелпу и моим опытам, 1 генерируется после нажатия на кнопку, и остается единицей в пределах одного обновления графика.
После обновления графика - возвращает 0.
До очередного нажатия на кнопку. |
_________________ Андрей
Your my your... |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Берем вот такой код.
Код: |
Filter = 1;
q = ParamTrigger("Trigger", "Trigger");
AddColumn(q, "param");
|
Запихиваем в АА. Включаем Run every: 1 sec. Открываем Parameters и изучаем как работает Trigger. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|