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



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

СообщениеДобавлено: Пн Сен 03, 2012 12:20 pm Ответить с цитатой Вернуться к началу

Задача в том, чтобы остановить выполнение кода на данном баре и переходить к следующему бару.
Судя по справке, Break только для циклов служит, а не для кода целиком..

_________________
www.oleg-churyumov.blogspot.com
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Пн Сен 03, 2012 2:20 pm Ответить с цитатой Вернуться к началу

Хм. AFL код не работает с отдельными барами. Он обрабатывает сразу весь массив. Отдельно с барами он работает только в случае цикла. Но в случае цикла не вижу проблем перейти к следующему бару.

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



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

СообщениеДобавлено: Пн Сен 03, 2012 2:53 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Хм. AFL код не работает с отдельными барами. Он обрабатывает сразу весь массив. Отдельно с барами он работает только в случае цикла. Но в случае цикла не вижу проблем перейти к следующему бару.

Ну я имел ввиду следующее. Допустим идет real time trading.
Могу ошибаться, но я думал, что код написанной мной формулы выполняется с приходом каждого нового бара. Торгуем на минутках - он выполняется раз в минуту.

Так вот, когда придет очередная минута-котировка, формула начнет выполняться, и я хочу прервать ее на середине. И все, больше выполняться не будет, пока следующая минута-котировка не придет.

_________________
www.oleg-churyumov.blogspot.com
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Понятно. По моему нельзя. Как только изменяется массив данных Ами по любому запускает перерасчет индикаторов и способы остановить такое поведение я не знаю.
В принципе можно сделать проверку в коде по времени и если, например текущие секунды меньше 30, то не расчитывать ничего. Только тогда пол минуты на чарте ничего на будет.

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



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

СообщениеДобавлено: Вт Сен 04, 2012 8:25 am Ответить с цитатой Вернуться к началу

000 писал(а):
Понятно. По моему нельзя. Как только изменяется массив данных Ами по любому запускает перерасчет индикаторов и способы остановить такое поведение я не знаю.
В принципе можно сделать проверку в коде по времени и если, например текущие секунды меньше 30, то не расчитывать ничего. Только тогда пол минуты на чарте ничего на будет.

Не совсем понял про секунды )
Goto оператора тоже нету в AFL, с ним можно бы было решить )
В принципе конечно можно еще задачу решить с помощью кучи IFов но это усложнит код ))

_________________
www.oleg-churyumov.blogspot.com
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

СообщениеДобавлено: Вт Сен 04, 2012 2:50 pm Ответить с цитатой Вернуться к началу

Посмотри код индикатора...
Код:

if(frac(Now( 4 )/100)*100 > 30)
  Plot(MA(C, 12), "", colorRed);
else
  Plot(MA(C, 24), "", colorBlue);


Plot(C, "", colorBlack, styleCandle);

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



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

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

000 писал(а):
Посмотри код индикатора...
Код:

if(frac(Now( 4 )/100)*100 > 30)
  Plot(MA(C, 12), "", colorRed);
else
  Plot(MA(C, 24), "", colorBlue);


Plot(C, "", colorBlack, styleCandle);

а ну в общем через if все решается )

_________________
www.oleg-churyumov.blogspot.com
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen