Помощь в кодировании - страница 175

 

привет младен,

1.вы упоминаете вторую форму, от более старых к более новым барам, вы имеете в виду такой стиль: for (i=limit;i>=0;i--)?

Я боюсь запутаться, поэтому прошу небольшого разъяснения.

2. спросите также, оба стиля (если не учитывать перерисовку или нет) в основном дают одинаковые сигналы или числовое значение?

3. может ли индикатор содержать оба стиля направления цикла? например, основная часть индикатора - вторая форма, а часть mtf - первая форма? есть ли здесь противоречия? или все же может работать нормально?

4. отсутствие некоторых предложений return(0), (является ли предложение return(0) обязательным или необходимым?) будет ли это проблемой для остановки индикатора или причиной пересорта? спасибо.

 
kenwa:
привет младен,

1.вы упоминаете вторую форму, от старших баров к более новым, вы имеете в виду такой стиль: for (i=limit;i>=0;i--)?

Я боюсь запутаться, поэтому прошу небольшого разъяснения.

2. спросите также, оба стиля (если не учитывать перерисовку или нет) в основном дают одинаковые сигналы или числовые значения?

3. может ли индикатор содержать оба стиля направления контура? например, основная часть индикатора - вторая форма, а часть mtf - первая форма? есть ли здесь противоречия? или все еще может работать нормально?

4. отсутствие некоторых предложений return(0), (является ли предложение return(0) обязательным или необходимым?) будет ли это проблемой для остановки индикатора или причиной перерисовки? спасибо.

1. да

2. зависит от расчетов внутри цикла - некоторые расчеты не могут быть выполнены в форме "новый-старый", в то время как все расчеты могут быть выполнены в форме "старый-новый".

3. можно, но см. пункт 2 - первая форма намного безопаснее

4. return(0) не может вызвать или предотвратить перерисовку - он не имеет с ней ничего общего

 
mladen:
1. да

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

3. можно, но см. пункт 2 - первая форма намного безопаснее.

4. return(0) не может вызвать или предотвратить перерисовку - он не имеет с ней ничего общего

могу ли я спросить i) если вторая форма может выполнять все типы вычислений, почему вторая форма не является более безопасной? я немного запутался.

Также ii) я вижу код, который вы исправили, мой предыдущий индикатор до этого использовал (i=limit;i>=0;i--) вторую форму, а мой самый начальный индикатор использовал стиль первой формы, есть какая-то причина использовать второй стиль? спасибо.

 
kenwa:
Могу ли я спросить: i) если вторая форма может выполнять все типы вычислений, почему вторая форма не является более безопасной? Я немного запутался. Также ii) я вижу код, который вы исправляете, мой предыдущий индикатор использует (i=limit;i>=0;i--) вторую форму, которую я использовал в самом начале, используя стиль первой формы.

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

 
mladen:
Я хотел сказать, что форма из пункта 1. Используйте эту форму и вы устраните возможную ошибку из-за неправильного направления расчета

Привет, Младен,

Если я не ошибаюсь, вы имеете в виду, что вторая форма может адаптировать все типы расчетов, но более безопасной является первая форма, которая предотвращает некоторые неправильные направления расчетов?

Ну, если моя основная часть индикатора использует вторую форму, а моя часть mtf использует первую форму, это нормально? Или лучше обе формы одинаковые? (первая форма лучше???)

какая форма лучше - первая или вторая - исключает возможность перерисовки? Спасибо за терпение, что ответили на мой запрос.

 
kenwa:
Привет, Младен,

Если я не ошибаюсь, вы имеете в виду, что вторая форма может адаптировать все типы расчетов, но безопаснее первая форма, которая предотвращает некоторые неправильные направления расчетов?

Ну, если моя основная часть индикатора использует вторую форму, а моя часть mtf использует первую форму, это нормально? Или лучше обе формы одинаковые? (первая форма лучше???)

какая форма? первая или вторая лучше исключает возможность перекраски? спасибо за терпение, что ответили на мой запрос.

kenwa

чтобы прояснить это: это гораздо лучшая форма

(i=limit;i>=0;i--)

 

Хорошо и большое спасибо - я соберу еще несколько результатов, прежде чем вернуться!

джефф

 

Помогите решить проблему с fantail vma

Здравствуйте,

Я пытаюсь изучить mql в течение последних нескольких месяцев. Я пытался создать советника на основе индикатора Fisher. Но, как мы знаем, Fisher перерисовывается, поэтому мне было трудно создать советника. Поэтому я стал демотивированным и занялся учебой. Сейчас я пытаюсь создать другой советник на основе FANTAIL. Но я столкнулся с проблемой, как передать значения из индикатора в советник. Для этого я использовал функцию iCustom. Этот индикатор рисует 50 линий на графике. Мне понадобятся некоторые значения из этих линий.

Подскажите, пожалуйста, как получить эти значения в советнике. Заранее благодарю. Извините, если задаю глупый вопрос.

Индикатор:

Файлы:
 

Здравствуйте, mladen, не могли бы вы помочь мне включить супертренд в этот индикатор? (Естественно, супертренд, рассчитанный на ExtMapBuffer1).

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

 
k3rn3l:
Здравствуйте mladen, не могли бы вы помочь мне включить супертренд в этот индикатор? (Естественно, супертренд, рассчитанный на ExtMapBuffer1)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

extern double Beta1 = 1.0;

extern string Symbol2 = "GBPUSD";

extern double Beta2 = 1.4;

//--- buffers

double ExtMapBuffer1[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

IndicatorShortName(Symbol() + " " + Beta1 + " " + Symbol2 + " " + Beta2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(Bars<1) return(0);

int i = Bars-counted_bars -1;

while(i >=0) {

int iShift2 = iBarShift(Symbol2, 0, Time, false);

ExtMapBuffer1 = Close * Beta1 - iClose(Symbol2, NULL, iShift2) * Beta2;

i--;

}

return(0);

}

Какой именно (из-за параметров, которые необходимо передать в функцию iCustom())?

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