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

 
k3rn3l:
mladen... вы можете исправить ошибку?

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

//| MTF_RSI.mq4 |

//| Copyright © 2006, Keris2112 |

//| |

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

#property copyright "Copyright © 2006, Keris2112"

#property link "https://www.forex-tsd.com"

//----

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

#property indicator_color3 White

#property indicator_level1 30

#property indicator_level2 70

#property indicator_minimum 0

#property indicator_maximum 100

//----

extern int TimeFrame=5;

extern int RSIperiod=33;

extern int applied_price=0;

extern int TimeFrame1=15;

extern int RSIperiod1=21;

extern int applied_price1=0;

extern int TimeFrame2=15;

extern int RSIperiod2=14;

extern int applied_price2=0;

//----

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double ExtMapBuffer3[];

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicator line

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(2,ExtMapBuffer3);

SetIndexStyle(2,DRAW_LINE);

//---- name for DataWindow and indicator subwindow label

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("MTF_RSI("+RSIperiod+") ("+TimeFrameStr+")");

}

//----

return(0);

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

//| MTF RSI |

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

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,Symbol(),TimeFrame);

limit=Bars-counted_bars;

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

{

if (Time<TimeArray[y]) y++;

//----

ExtMapBuffer1=iRSI(NULL,TimeFrame,RSIperiod,applied_price,y);

}

datetime TimeArray1[];

int ii,limiti,yi=0,counted_bars1=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray1,MODE_TIME,Symbol(),TimeFrame1);

limiti=Bars-counted_bars1;

for(ii=0,yi=0;ii<limiti;ii++)

{

if (Time<TimeArray1[yi]) yi++;

//----

ExtMapBuffer2=iRSI(NULL,TimeFrame1,RSIperiod1,applied_price1,yi);

}

datetime TimeArray2[];

int iii,limitii,yii=0,counted_bars2=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray2,MODE_TIME,Symbol(),TimeFrame2);

limitii=Bars-counted_bars2;

for(iii=0,yii=0;iii<limitii;iii++)

{

if (Time<TimeArray2[yii]) yii++;

//----

ExtMapBuffer3=iRSI(NULL,TimeFrame2,RSIperiod2,applied_price2,yii);

}

//----

return(0);

}

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

Попробуйте приложенный вариант

Файлы:
 

Здравствуйте, Младен,

пожалуйста, не могли бы вы добавить "velo6" в прилагаемый индикатор?

Мне нужен ввод для цвета и "true-false"....see изображения, например.

ВСЕГДА БЛАГОДАРЮ ВАС......

Файлы:
euro.gif  32 kb
 

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

вот моя формула метастока...

ШИРИНА:=

((Mov(C,71,S)+(2*(Std(C,71))))-

(Mov(C,71,S)-(2*(Std(C,71)))));

MEDIA:=Mov(WIDTH,15,S);

ST:=Stoch(5,3);

TIME:=BarsSince(WIDTH=0 AND

BarsSince(WIDTH<MEDIA)<=5;

CONDBUY:=ST<=30 OR (Ref(ST<=30,-1) AND H<=Ref(H,-1));

ВРЕМЯ И КОНДУИТ

ПОЯСНЕНИЕ:

1) я использую полосу Боллинджера 71 и отклонение 2

2) на ширине полосы Боллинджера я применяю 15 простую скользящую среднюю

3) когда ширина полосы Боллинджера ниже SMA, а также в течение 5 баров после этого, это означает, что рынок вошел в торговый диапазон.

4) когда есть торговый диапазон, я вижу стохастик ниже 30

Файлы:
 
carbonmimetic:
Привет, Младен,

пожалуйста, можете ли вы добавить "velo6" в прилагаемый индикатор?

Мне нужен ввод для цвета и "true-false"....see изображения, например.

ВСЕГДА БЛАГОДАРЮ ТЕБЯ......

carbonmimetic

Вот, пожалуйста

Файлы:
 

...как я уже говорил...ВСЕГДА СПАСИБО ВАМ!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

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

Чтобы побеспокоить вас, пожалуйста, поместите код в индикаторы MT4 хорошо?

Мне не терпится протестировать.

Спасибо

Kreangast

2013/5/25

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

Чтобы побеспокоить вас, пожалуйста, поместите код в индикаторы MT4 хорошо?

Мне не терпится протестировать.

Спасибо

Kreangast

2013/5/25

Извините

Поскольку я не использую Amibroker, я не могу преобразовать этот код в metatrader 4 и быть на 100% уверенным, что он правильный (и я бы не хотел быть ответственным за какой-то неправильно закодированный индикатор).

 
mladen:
Извините, поскольку я не использую Amibroker, я не могу преобразовать этот код в metatrader 4 и быть на 100% уверенным, что он правильный (и мне бы не хотелось быть ответственным за какой-то неправильно закодированный индикатор).

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

Извините! AMI Поскольку проблема была решена.

Спасибо, пожалуйста, помогите заменить MT4.

"-BarsSince(X)=BarsLate(X)"

_SECTION_BEGIN("pfoot");

TimeFrameSet(inDaily);

TR=Max(Max((High-Low),abs(Ref(Close,-1)-High)),abs(Ref(Close,-1)-Low)));

A= H-(TR*0.3);

A1=H-(TR*0.6);

A2=H-(TR*0.8);

A3=H-(TR*1.0);

//

B= L+(TR*0.3);

B1=L+(TR*0.6);

B2=L+(TR*0.8);

B3=L+(TR*1.0);

//

N=100;

H2=H==HHV(H,N);//

L2=L==LLV(L,N);//

PPF=Ref(A,-BarsSince(H2));//-BarsSince=BarsLate

PPF1=Ref(A1,-BarsSine(H2));//

PPF2=Ref(A2,-BarsSine(H2));//

PPF3=Ref(A3,-BarsSine(H2));//

//

PPFF=Ref(B,-BarsSince(L2));//

PPFF1=Ref(B1,-BarSince(L2));//

PPFF2=Ref(B2,-BarsSince(L2));//

PPFF3=Ref(B3,-BarsSince(L2));//

TimeFrameRestore();

// Постройте облака и линии уровней поддержки //

Plot(TimeFrameExpand(PPF,inDaily ,expandLast), "R1", colorGreen, styleThick);

Plot(TimeFrameExpand(PPF1,inDaily ,expandLast), "R2", colorGreen, styleThick);

Plot(TimeFrameExpand(PPF2,inDaily ,expandLast), "R3", colorGreen,styleThick);

Plot(TimeFrameExpand(PPF3,inDaily ,expandLast), "R4", colorGreen,styleThick);

Plot(TimeFrameExpand(PPFF,inDaily ,expandLast), "S1", colorBlue, styleThick);

Plot(TimeFrameExpand(PPFF1,inDaily ,expandLast), "S2", colorBlue, styleThick);

Plot(TimeFrameExpand(PPFF2,inDaily ,expandLast), "S3", colorBlue,styleThick);

Plot(TimeFrameExpand(PPFF3,inDaily ,expandLast), "S4", colorBlue,styleThick);

_SECTION_END();

Спасибо

Kreangast

 

Я формулирую свой вопрос следующим образом.

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

Без необходимости уменьшать количество баров, отображаемых на графике Metatrader.

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

Спасибо за внимание.

 
Antonsan:
Формулирую свой вопрос здесь.

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

Без необходимости уменьшать количество баров, отображаемых на графике Metatrader.

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

Спасибо за внимание.

Antonsan

Прочитайте пожалуйста этот пост : https://www.mql5.com/en/forum/180284/page31. Повторю суть - нужно изменить лимит баров в коде. Другого способа нет.