//+------------------------------------------------------------------+ //| Sample10_Ind.mq4 | //| Copyright ゥ 2006, Toyolab FX | //| http://forex.toyolab.com | //+------------------------------------------------------------------+ #property copyright "Copyright ゥ 2006, Toyolab FX" #property link "http://forex.toyolab.com" #property indicator_chart_window #property indicator_buffers 4 //---- パラメータ extern int FastMA_Period = 10; extern int SlowMA_Period = 20; //---- インディケータバッファ double BufFastMA[]; double BufSlowMA[]; double BufBuy[]; double BufSell[]; //+------------------------------------------------------------------+ //| インディケータ初期化関数 | //+------------------------------------------------------------------+ int init() { //---- バッファのインディケータへの割り当て SetIndexBuffer(0, BufFastMA); SetIndexBuffer(1, BufSlowMA); SetIndexBuffer(2, BufBuy); SetIndexBuffer(3, BufSell); //---- データウィンドウのラベル SetIndexLabel(0,"FastMA"); SetIndexLabel(1,"SlowMA"); SetIndexLabel(2,"BuySignal"); SetIndexLabel(3,"SellSignal"); //---- インディケータの種類の設定 SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, Red); SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1, Blue); //---- インディケータの種類の設定(Buyシグナル) SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 1, Blue); SetIndexArrow(2,233); SetIndexEmptyValue(2,0); //---- インディケータの種類の設定(Sellシグナル) SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 1, Red); SetIndexArrow(3,234); SetIndexEmptyValue(3,0); return(0); } //+------------------------------------------------------------------+ //| インディケータ処理関数 | //+------------------------------------------------------------------+ int start() { int limit=Bars-IndicatorCounted(); for(int i=limit-1; i>=0; i--) { BufFastMA[i] = iMA(NULL,0,FastMA_Period,0,MODE_SMA,PRICE_CLOSE,i); BufSlowMA[i] = iMA(NULL,0,SlowMA_Period,0,MODE_SMA,PRICE_CLOSE,i); if(BufFastMA[i+1] <= BufSlowMA[i+1] && BufFastMA[i] > BufSlowMA[i]) BufBuy[i] = Close[i]; if(BufFastMA[i+1] >= BufSlowMA[i+1] && BufFastMA[i] < BufSlowMA[i]) BufSell[i] = Close[i]; } return(0); } //+------------------------------------------------------------------+