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

 

Я получаю ошибку/предупреждение при компиляции. Может ли кто-нибудь сделать это совместимым с последними сборками MT4... если эта ошибка не является большой проблемой.

Большое спасибо

jbozman

Файлы:
 
jbozman:
Я получаю ошибку/предупреждение при компиляции. Может кто-нибудь, пожалуйста, сделать это совместимым с последними сборками MT4... если эта ошибка не является большой проблемой.

Большое спасибо

jbozman

jbozman

Попробуйте сейчас: price_lines_jlmv_1.mq4

Файлы:
 
mladen:
jbozman Попробуйте сейчас: price_lines_jlmv_1.mq4

Ошибок нет. Компилируется и выглядит нормально. Вы рок.

j

 

пожалуйста, помогите... если я компилирую... ошибки нет.

но на вкладке Expert в метатрейдере ошибка

2014.11.02 15:20:17.495 array out of range in '#MTF__B.mq4' (84,25)[/PHP]

[PHP]

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

//| #MTF__B.mq4 |

//| Copyright 2014, MetaQuotes Software Corp. |

//| https://www.mql5.com |

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

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#property indicator_chart_window

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 clrDodgerBlue

#property indicator_color2 clrDeepPink

#property indicator_width1 0

#property indicator_width2 0

//---- input parameters

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

You must use the numeric value of the timeframe that you want to use

when you set the TimeFrame' value with the indicator inputs.

---------------------------------------

PRICE_CLOSE 0 Close price.

PRICE_OPEN 1 Open price.

PRICE_HIGH 2 High price.

PRICE_LOW 3 Low price.

PRICE_MEDIAN 4 Median price, (high+low)/2.

PRICE_TYPICAL 5 Typical price, (high+low+close)/3.

PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.

You must use the numeric value of the Applied Price that you want to use

when you set the 'applied_price' value with the indicator inputs.

**************************************************************************/

extern int TimeFrame=30;

extern int barn=1000;

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicator line

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(0,DRAW_ARROW,0,5);

SetIndexStyle(1,DRAW_ARROW,0,5);

SetIndexArrow(0,158);

SetIndexArrow(1,158);

return(0);

}

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

//| |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,NULL,TimeFrame);

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++; ///// line of error here ...

/***********************************************************

Add your main indicator loop below. You can reference an existing

indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

**********************************************************/

ExtMapBuffer1=iCustom(NULL,TimeFrame,"indicator",1,4,0,y) ;

ExtMapBuffer2=iCustom(NULL,TimeFrame,"indicator",1,4,1,y) ;

}

//

return(0);

}

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

спасибо

 
rizkyd:
пожалуйста, помогите ... если я компилирую ... нет ошибки

но на вкладке "Эксперт" metatrader выдает ошибку

2014.11.02 15:20:17.495 array out of range in '#MTF__B.mq4' (84,25)[/PHP]

[PHP]

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

//| #MTF__B.mq4 |

//| Copyright 2014, MetaQuotes Software Corp. |

//| https://www.mql5.com |

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

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#property version "1.00"

#property strict

#property indicator_chart_window

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 clrDodgerBlue

#property indicator_color2 clrDeepPink

#property indicator_width1 0

#property indicator_width2 0

//---- input parameters

/*************************************************************************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PERIOD_W1 10080

PERIOD_MN1 43200

You must use the numeric value of the timeframe that you want to use

when you set the TimeFrame' value with the indicator inputs.

---------------------------------------

PRICE_CLOSE 0 Close price.

PRICE_OPEN 1 Open price.

PRICE_HIGH 2 High price.

PRICE_LOW 3 Low price.

PRICE_MEDIAN 4 Median price, (high+low)/2.

PRICE_TYPICAL 5 Typical price, (high+low+close)/3.

PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4.

You must use the numeric value of the Applied Price that you want to use

when you set the 'applied_price' value with the indicator inputs.

**************************************************************************/

extern int TimeFrame=30;

extern int barn=1000;

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicator line

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(0,DRAW_ARROW,0,5);

SetIndexStyle(1,DRAW_ARROW,0,5);

SetIndexArrow(0,158);

SetIndexArrow(1,158);

return(0);

}

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

//| |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,NULL,TimeFrame);

limit=MathMin(Bars-counted_bars,Bars-1);

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++; ///// line of error here ...

/***********************************************************

Add your main indicator loop below. You can reference an existing

indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

**********************************************************/

ExtMapBuffer1=iCustom(NULL,TimeFrame,"indicator",1,4,0,y) ;

ExtMapBuffer2=iCustom(NULL,TimeFrame,"indicator",1,4,1,y) ;

}

//

return(0);

}

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

спасибо

Попробуйте заменить эту строку

limit=Bars-counted_bars;

на эту

limit=MathMin(MathMax(Bars-counted_bars,2*TimeFrame/Period()),Bars-1);

 
mladen:
Попробуйте заменить эту строку

limit=Bars-counted_bars;

с этим :

limit=MathMin(MathMax(Bars-counted_bars,2*TimeFrame/Period()),Bars-1);

спасибо mladen

 

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

У меня проблемы с кодированием этого советника, поскольку правила входа - это то, чего я никогда раньше не делал.

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

Но в следующем примере я сначала получаю зеленую стрелку без красной. Поэтому я не заключаю сделку, пока не появится красная стрелка. Кроме того, все свечи, которые находятся после зеленой стрелки и перед красной стрелкой, должны быть ВВЕРХ, так как в противном случае это не будет правильной сделкой.

Как, черт возьми, мне закодировать это конкретное правило? Я знаю, как закодировать его для текущей свечи, но не знаю, как указать эти условия. Любая помощь была бы очень кстати!

Файлы:
capture1.jpg  19 kb
capture.jpg  22 kb
 
Jason2005:
Привет, Младен,

У меня проблемы с кодированием этого советника, поскольку правила входа - это то, чего я никогда раньше не делал.

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

Но в следующем примере я сначала получаю зеленую стрелку без красной. Поэтому я не заключаю сделку, пока не появится красная стрелка. Кроме того, все свечи, которые находятся после зеленой стрелки и перед красной стрелкой, должны быть ВВЕРХ, так как в противном случае это не будет правильной сделкой.

Как, черт возьми, мне закодировать это конкретное правило? Я знаю, как закодировать его для текущей свечи, но я не знаю, как указать эти условия. Любая помощь была бы замечательной!

Джейсон

Почему бы вам не скопировать логические условия из кода, который создает эти стрелки?

 
mladen:
Джейсон Почему бы вам не скопировать логические условия из кода, который создает эти стрелки?

Я не совсем уверен, что понимаю, о чем вы говорите...

Я пытаюсь выяснить, как в моих условиях покупки или продажи заставить советника понять, что когда появляется красная стрелка (это триггер), условием является то, что до этого должна быть зеленая стрелка, и что все свечи, которые следуют за этой стрелкой, должны быть ВВЕРХ или ВНИЗ, в зависимости от того, что необходимо. Но я не знаю, когда должна была появиться эта зеленая стрелка...

 
Jason2005:
Я не совсем уверен, что понимаю, о чем вы говорите... Я пытаюсь выяснить, как в моих условиях покупки или продажи заставить советника понять, что когда появляется красная стрелка (это триггер), условием является то, что до этого должна быть зеленая стрелка, и что все свечи, которые следуют за этой стрелкой, должны быть ВВЕРХ или ВНИЗ, в зависимости от того, что нужно. Но я не знаю, когда должна была появиться эта зеленая стрелка...

Привет Джейсон2005,

Красные и зеленые стрелки - это значения в буферах вашего индикатора...., а не вашего эксперта.....

Используйте iCustom в своем советнике для вызова значений индикатора в буферах... и затем используйте их для своей торговой стратегии.

На этом форуме есть много хороших сообщений о том, как использовать iCustom в вашем советнике...

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

Надеюсь, это поможет,

Роберт

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