多空指标(源码)

多空指标原理:

利用均线的金叉死叉进行多空判断。

多空指标(源码)

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DarkSlateBlue

#property indicator_color2 Maroon

#property indicator_color3 Yellow

#property indicator_color4 MediumTurquoise

#property indicator_width1 6

#property indicator_width2 6

#property indicator_width3 1

#property indicator_width4 1

//—-

extern int ma_1 = 28;

extern int ma_2 = 144;

extern int method = 3;

extern int price = 0;

extern int signal = 14;

extern int s_method = 0;

extern int signal2 = 70;

extern int s_method2 = 0;

extern color color1 = DarkSlateBlue;

extern color color2 = Maroon;

extern color color3 = Yellow;

extern color color4 = MediumTurquoise;

//—- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

double MACD_Map[];

double SignalLine[];

double SignalLine2[];

double SignalMap2[];

double SignalMap[];

//—-

int ExtCountedBars=0;

 

int init()

{

//—- indicators

IndicatorBuffers(7);

 

SetIndexStyle(0,DRAW_HISTOGRAM, 0, 6, color1);

SetIndexBuffer(0, ExtMapBuffer1);

SetIndexStyle(1,DRAW_HISTOGRAM, 0, 6, color2);

SetIndexBuffer(1, ExtMapBuffer2);

SetIndexStyle(2,DRAW_LINE, 0, 1, color3);

SetIndexBuffer(2, SignalLine);

SetIndexStyle(3,DRAW_LINE, 0, 1, color4);

SetIndexBuffer(3, SignalLine2);

 

SetIndexBuffer(4,MACD_Map);

SetIndexStyle(4,DRAW_NONE);

SetIndexBuffer(5,SignalMap);

SetIndexStyle(5,DRAW_NONE);

SetIndexBuffer(6,SignalMap2);

SetIndexStyle(6,DRAW_NONE);

 

IndicatorShortName(“yuriytokman@gmail.com”);

SetIndexLabel(0,”yuriytokman@gmail.com”);

SetIndexLabel(1,”yuriytokman@gmail.com”);

SetIndexLabel(2,”Sgn_1_asystem2000@gmail.com”);

SetIndexLabel(3,”Sgn_2_asystem2000@gmail.com”);

//—-

SetIndexDrawBegin(0,10);

SetIndexDrawBegin(1,10);

SetIndexDrawBegin(2,signal);

SetIndexDrawBegin(3,signal2);

//—- indicator buffers mapping

 

Comment(”  “);

return(0);

}

//\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n

int start()

{

if(Bars<=10) return(0);

ExtCountedBars=IndicatorCounted();

//—- check for possible errors

if (ExtCountedBars<0) return(-1);

//—- last counted bar will be recounted

if (ExtCountedBars>0) ExtCountedBars–;

int pos=Bars-ExtCountedBars-1;

while(pos>=0)

{

ExtMapBuffer1[pos]=iMA(Symbol(),0,ma_1,0,method,price,pos);

ExtMapBuffer2[pos]=iMA(Symbol(),0,ma_2,0,method,price,pos);

MACD_Map[pos]=ExtMapBuffer1[pos]-ExtMapBuffer2[pos];

pos–;

}

 

pos=Bars-ExtCountedBars-1;

 

while(pos>=0)

{

SignalMap[pos]=  iMAOnArray(MACD_Map,0,signal,0,s_method,pos);

SignalLine[pos]= NormalizeDouble(ExtMapBuffer2[pos]+SignalMap[pos],Digits);

 

SignalMap2[pos]=  iMAOnArray(MACD_Map,0,signal2,0,s_method2,pos);

SignalLine2[pos]= NormalizeDouble(SignalMap2[pos]+ExtMapBuffer2[pos],Digits);

pos–;

}

return(0);

}

 

本文内容仅代表作者观点,不代表本站立场,如若转载,请注明出处:https://www.fx220.com/news/22683.html

发表评论

邮箱地址不会被公开。 必填项已用*标注