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



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

СообщениеДобавлено: Чт Мар 05, 2009 2:44 pm Ответить с цитатой Вернуться к началу

Для открытия длинной позы использую кнопку
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
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Мар 05, 2009 3:08 pm Ответить с цитатой Вернуться к началу

Почему не пользуетесь трудом админа?


Код:
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

СообщениеДобавлено: Чт Мар 05, 2009 4:48 pm Ответить с цитатой Вернуться к началу

В оригинальном хелпе написано:
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

СообщениеДобавлено: Чт Мар 05, 2009 5:49 pm Ответить с цитатой Вернуться к началу

Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре. Каждая запись имеет свой ID который зависит в т.ч. и от бара на котором был сигнал и если запись с таким ID уже есть, то новая не добавляется

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



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

СообщениеДобавлено: Чт Мар 05, 2009 8:02 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре.


Так и есть, спасибо!

_________________
Андрей
Your my your...
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Мар 05, 2009 8:22 pm Ответить с цитатой Вернуться к началу

Torino писал(а):
000 писал(а):
Если запись в файл взята от робота, то там есть защита от многократной записи на одном баре.


Так и есть, спасибо!


Прошу прощения, когда читал ваш пост не обратил внимание что 2 заявки вы хотели получить на одном баре. Но хотелось бы получить ответ, так как действует кнопка, нажал и массиву Х начинает присваиваться 1 в до тех пор пока не нажмеш его еще раз, т.е. как переключатель или все таки в массив записывается 1 только в момент нажатия, в англицком сам 0 Sad

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Torino



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

СообщениеДобавлено: Чт Мар 05, 2009 8:57 pm Ответить с цитатой Вернуться к началу

commenced писал(а):
как действует кнопка, нажал и массиву Х начинает присваиваться 1 в до тех пор пока не нажмеш его еще раз, т.е. как переключатель или все таки в массив записывается 1 только в момент нажатия, в англицком сам 0

Судя по хелпу и моим опытам, 1 генерируется после нажатия на кнопку, и остается единицей в пределах одного обновления графика.
После обновления графика - возвращает 0.
До очередного нажатия на кнопку.

_________________
Андрей
Your my your...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Мар 05, 2009 9:23 pm Ответить с цитатой Вернуться к началу

Берем вот такой код.
Код:

Filter = 1;
q = ParamTrigger("Trigger", "Trigger");
AddColumn(q, "param");

Запихиваем в АА. Включаем Run every: 1 sec. Открываем Parameters и изучаем как работает Trigger. Smile

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen