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



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

СообщениеДобавлено: Ср Дек 16, 2015 8:52 pm Ответить с цитатой Вернуться к началу

Похоже нашёл как это сделать. Поскольку, судя по всему, встроенной в AFL такой функции нет, то код такой:

EnableScript("vbscript");
<%
afl("ff")=1
result = MsgBox ("ggg",vbExclamation+vbOkCancel+vbDefaultButton2,"fff")
if result = vbOk Then
'MsgBox "ggg",0,"fff"
afl("ff")=2
End if
%>

PopupWindow(""+ff,"ff",30);

Вопрос исчерпан. Всем спасибо Smile
Посмотреть профиль Отправить личное сообщение
il-ir



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

СообщениеДобавлено: Ср Фев 17, 2016 7:11 pm Ответить с цитатой Вернуться к началу

Что-то произошло с Амиком - подскажите как решить.

Амик лицензионный.

Почему-то, если использую ParamList, то выбранное значение отображается в окошке Interpretation.
Почему оно отображается - мне это не надо Smile
Причем раньше, если не ошибаюсь, такого не было Sad
Может я где-то что-то в настройках испортил?

К примеру такой код (взял стандартный индикатор Price и добавил только один оператор), результат на вложенной картинке:
Код:
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);

ff= ParamList("ff", "Value 1|Value 2|Value 3", 1);  //тестовый оператор.

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();



Заранее спасибо за ответ(ы)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Фев 18, 2016 12:07 am Ответить с цитатой Вернуться к началу

Угу. Есть такое. Очень похоже на глюк. Как обойти не нашел.

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



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

СообщениеДобавлено: Чт Фев 18, 2016 10:01 pm Ответить с цитатой Вернуться к началу

Помогите с кодом, не понимаю почему не работает. Что хочу сделать: Если свеча buy и индикатор между О и С, то смотрим следующую свечу. Следующая свеча должна быть тоже buy и О и С находится выше индикатора. Если все условия выполнены покупаем на следующей свече (третьей по счету) по цене открытия (это я в настройках тестера сделал, тут все норм). Выходим по тейк профиту (тоже в настройках сделал) или когда свеча sell закроется ниже индикатора. Собственно только последняя часть и работает.
Вот для наглядности скрин.
Image

А вот и не рабочий код.
Код:
if (C[2] > O[2] AND IND[2] > O[2] AND IND[2] < C[2])  // проверка, что первая свеча "buy" и индикатор внутри свечи
   {
      if (C[1] > O[1] AND IND[1] < O[1] AND IND[1] < C[1])   // проверка второй свечи, что она "buy" и выше индикатора
      {
      Buy = Open;   
      }
   }   
Sell = Cross(IND, C);      // закрытие позиции если не закрылось по тейк профиту
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Фев 19, 2016 12:19 am Ответить с цитатой Вернуться к началу

Код:
SetTradeDelays(1, 0, 0, 0); // поставил задержку buy на 1 "Если все условия выполнены покупаем на следующей свече"

ind = ...; // индиатор
buyCond = ...; // свечка Buy

Cond1 = Ref( buyCond AND O < ind AND C > ind, -1)
Cond2 = O > ind AND C > ind;
Buy = Cod1 AND Cond2;

BuyPrice = O; // покупаем открытие

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



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

СообщениеДобавлено: Пт Фев 19, 2016 4:45 am Ответить с цитатой Вернуться к началу

Огромное спасибо за код, буду разбираться в логике программы.
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Пт Фев 19, 2016 1:39 pm Ответить с цитатой Вернуться к началу

il-ir писал(а):
Что-то произошло с Амиком - подскажите как решить.

Амик лицензионный.

Почему-то, если использую ParamList, то выбранное значение отображается в окошке Interpretation.
Почему оно отображается - мне это не надо Smile
Причем раньше, если не ошибаюсь, такого не было Sad
Может я где-то что-то в настройках испортил?

К примеру такой код (взял стандартный индикатор Price и добавил только один оператор), результат на вложенной картинке:
Код:
_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);

ff= ParamList("ff", "Value 1|Value 2|Value 3", 1);  //тестовый оператор.

_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();



Заранее спасибо за ответ(ы)


That's not a bug! It has always been the case that string variables are output in Information window.

If you don't want to have output of strings there then use

Код:
EnableTextOutput( false );


or

Код:
EnableTextOutput( 0 );


at the top of the string you want to exclude from output.



If you want to enable it again after that at later stage of your code then use

Код:
EnableTextOutput( true );


or

Код:
EnableTextOutput( 1 );



https://www.amibroker.com/guide/afl/enabletextoutput.html
Посмотреть профиль Отправить личное сообщение
il-ir



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

СообщениеДобавлено: Пт Фев 19, 2016 7:06 pm Ответить с цитатой Вернуться к началу

trashfx писал(а):

That's not a bug! It has always been the case that string variables are output in Information window.

If you don't want to have output of strings there then use

Код:
EnableTextOutput( false );


or

Код:
EnableTextOutput( 0 );


Thanks.
Спасибо.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Фев 20, 2016 8:55 am Ответить с цитатой Вернуться к началу

trashfx писал(а):


That's not a bug! It has always been the case that string variables are output in Information window.

Thanks.

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



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

СообщениеДобавлено: Сб Фев 20, 2016 9:53 am Ответить с цитатой Вернуться к началу

Кстати, аналогичного эффекта можно достигнуть, если использовать _N().
То есть, вместо
Код:
ff = ParamList("ff", "Value 1|Value 2|Value 3", 1);  //тестовый оператор.

написать
Код:
_N(ff = ParamList("ff", "Value 1|Value 2|Value 3", 1));  //тестовый оператор.


Это будет действо, аналогичное EnableTextOutput( false ); но только для одного оператора.

Если бы trashfx не подтолкнул к поискам, так и не знал бы Smile

Хотя в каждом индикаторе / системе / прочем, где выводится заголовок, используется конструкция: _N(Title = ...).
Посмотреть профиль Отправить личное сообщение
Swell



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

СообщениеДобавлено: Вт Мар 29, 2016 1:37 pm Ответить с цитатой Вернуться к началу

Никто не подскажет, можно ли из кода AFL узнать, в каких местах на графике Ами рисует линии сетки?
Я хочу нарисовать свои с помощью низкоуровневой графики, но в тех местах, где их рисует Ами.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

вроде нельзя.

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



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

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

Жаль (.
Здесь проблема в том, чтобы определить, где Ами расставляет надписи на осях.
Ну или по какому алгоритму...
Посмотреть профиль Отправить личное сообщение
trashfx



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

СообщениеДобавлено: Ср Мар 30, 2016 1:18 am Ответить с цитатой Вернуться к началу

Swell писал(а):
Никто не подскажет, можно ли из кода AFL узнать, в каких местах на графике Ами рисует линии сетки?
Я хочу нарисовать свои с помощью низкоуровневой графики, но в тех местах, где их рисует Ами.


What kind of grid lines do you want to draw?
Do you mean like these?
http://amisite.ru/phpBB2/viewtopic.php?p=22280#22280

There is no Gfx required for those.
Посмотреть профиль Отправить личное сообщение
Swell



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

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

Нет, не совсем то.
У меня есть некоторые построения низкоуровневой графикой, которые хотелось бы, чтобы были ниже (по оси Z) всех остальных элементов карты, но были бы выше линий сетки...
Вобщем проблема в том, что низкоуровневая графика не имеет параметра Z-Order... Она либо поверх всей карты, либо за ней. Один из вариантов - нарисовать линии сетки с помощью той же низкоуровневой графики...
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen