[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 669

 
Diger:

С кем-нибудь такое было?

В журнале тестера стратегий нет ни одного ЛОССа, а кривая графика идёт неуклонно вниз.

Чо бы это значило?

Сила гравитации... :)) Вы не на Юпитере? :)) Простите - шутка...
 
Diger: С кем-нибудь такое было? В журнале тестера стратегий нет ни одного ЛОССа, а кривая графика идёт неуклонно вниз. Чо бы это значило?
Слив по спреду. Слишком много сделок. Откройте график тестера.
 
artmedia70:
Сила гравитации... :)) Вы не на Юпитере? :)) Простите - шутка...

Сам чумею. Может, и правда я там?!....
 
Richie:
Слив по спреду. Слишком много сделок. Откройте график тестера.


Вы оказались правы!

Против обычных 2п сейчас имеем 26...

Спасибо!

 
Diger:


Вы оказались правы!

Против обычных 2п сейчас имеем 26...

Спасибо!

Добавьте условие для максимального спреда, выше которого сделки не открываются (но уже открытые продолжают контролироваться Советником).

 
chief2000:

Добавьте условие для максимального спреда, выше которого сделки не открываются (но уже открытые продолжают контролироваться Советником).


Раньше не считал нужным.

Но сегодняшний тестер мне эту необходимость показал.

 

Кстати, тоже интересно и непонятно для меня получается. Добавил в советник лок убыточных позиций по принципу: находим самого большого лося и открываем противоположную позу лотом того лося, помноженным на коэффициент, вычисляемый из текущего состояния рынка на всех ТФ и места положения относительно открытого лося и текущей цены, ну и самого графика цены (типа - а стоит ли вообще открывать лок, если цена пошла в нужную сторону...). Соответственно, при достижении суммарного профита двух этих позиций порядка 50 - 60 пунктов - обе закрываем, сначала прибыльную.

Так вот я заметил, что прибыльная ТС, дающая на протяжении двух лет в тестере стабильный профит, но имеющая в своём арсенале дикие просадки, с которыми нельзя мириться, при использовании локов сливает за два месяца... В чём может быть причина??? Так, навскидку. Стейты сливов не сохранял по причине "...а нафига???"

 

Вопрос:

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

   CurAsk   =MarketInfo(Symbol(),MODE_ASK);
   CurBid   =MarketInfo(Symbol(),MODE_BID);
   OpnPrice =iOpen(NULL,PERIOD_M5,0);
   OpnPrice1=iOpen(NULL,PERIOD_M5,1);
   ClsPrice1=iClose(NULL,PERIOD_M5,1);
Могу ли я сделать к ним обращение один единственный раз в начале ф-ции start и далее уже обращаться только к глобальным переменным, в которых будут храниться эти данные? А то масло-масленное получается...
 
artmedia70:

Вопрос:

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

Могу ли я сделать к ним обращение один единственный раз в начале ф-ции start и далее уже обращаться только к глобальным переменным, в которых будут храниться эти данные? А то масло-масленное получается...


OpnPrice =iOpen(NULL,PERIOD_M5,0);

тут я понимаю, что расчет идет на нулевом баре, т.е. каждый тик будет меняться данные

по логике вещей - тебе надо написать скрипт и зациклить его и он будет тебе давать этот расчет в глобальные переменные, но тогда появится необходимость синхронизации новых данных по каждому тику, думаю проще все таки оставить как есть, тока вынести в отдельную функцию и вызывать эту функцию только в необходимых случаях, т.е. если расчет важен для открытия ордеров, то непосредственно перед открытием и соответственно для закрытия 

 
IgorM:


OpnPrice =iOpen(NULL,PERIOD_M5,0);

тут я понимаю, что расчет идет на нулевом баре, т.е. каждый тик будет меняться данные

по логике вещей - тебе надо написать скрипт и зациклить его и он будет тебе давать этот расчет в глобальные переменные, но тогда появится необходимость синхронизации новых данных по каждому тику, думаю проще все таки оставить как есть, тока вынести в отдельную функцию и вызывать эту функцию только в необходимых случаях, т.е. если расчет важен для открытия ордеров, то непосредственно перед открытием и соответственно для закрытия

Игорь, я пока так и делаю, но, боюсь, это тормозит итак уже тормознутую систему из всех этих стратегий, смешанных воедино и подключающихся по условиям, а иногда и дружною гурьбою одновременно работающих. Представь, в каждой идёт вызов одного и того же кода, да ещё и оформленного в отдельную функцию.

Мне кажется - ну и что, что некоторые данные берутся с нулевого бара, ведь открываюсь я итак на нулевом... Только данные индюкаторов беру с первого, второго-третьего баров...
OpnPrice =iOpen(NULL,PERIOD_M5,0); здесь же я получаю цену открытия текущего бара и она уже не изменится - это же уже свершившийся факт. При сравнении цены закрытия предыдущего и цены открытия текущего баров нек-рые ф-ции дают добро, либо запрет на открытие позы...

Так и пусть эти данные все будут считаны единожды с приходом тика, а далее уже использоваться советником. Они ж будут актуальны и неизменны до прихода следующего тика, где советник их вновь обновит для следующего цикла рассчётов.

Какова вероятность прихода нового тика до завершения всех текущих рассчётов советника? Мне кажется, только в этом случае данные станут старыми и неактуальными.

Причина обращения: