// <インディケータ> // 移動平均を2本引く:長短(EMA) // CrossUp、Crossown信号を共有メモリに書き込む // // #import "shared_memory.dll" //double set_a(); //double write_a(double,int); //double read_a(int); //double close_a(); double set_b(); double write_b(double,int); double read_b(int); double close_b(); #import #property show_inputs //設定時にインプット・タブを表示する #property indicator_chart_window //チャート上に描画する #property indicator_buffers 2 //インディケータは2個 #property indicator_color1 Magenta //長emaはピンク #property indicator_color2 Blue //単emaは青 //指標バッファ double Buf0[]; double Buf1[]; //外部パラメータ extern int Long_Period = 13; extern int Short_Period = 8; extern int shift_ES = 0; //移動平均の表示「右シフト」数 //初期化 int init() { //set_a(); set_b(); //指標バッファ割り当て SetIndexBuffer(0,Buf0); SetIndexBuffer(1,Buf1); //表示する指標数 IndicatorBuffers(2); //いくつ表示するかを指定 // for(int k=0;k<=1000;k++) { //write_a(0.0,k); write_b(0.0,k); } // return(0); } int deinit() { //close_a(); close_b(); return(0); } //スタート関数 int start() { // for(int k=0;k<=1000;k++) { //write_a(0.0,k); write_b(0.0,k); } // int limit = Bars-IndicatorCounted(); for(int i=limit-1;i>=0;i--) { Buf0[i]=iMA(NULL,0,Long_Period,0,MODE_EMA,PRICE_CLOSE,i); //長13emaの計算 Buf1[i]=iMA(NULL,0,Short_Period,0,MODE_EMA,PRICE_CLOSE,i); //単 8emaの計算 } //// for(int j=0;j<=1000;j++) { //CrossUp if(Buf1[j]>Buf0[j] && Buf1[j+1]>Buf0[j+1] && Buf1[j+2]Buf0[j+2] && Buf1[j+3]>Buf0[j+3] && Buf1[j+20]>Buf0[j+20]) { //write_a(-1.0,j); write_b(-1.0,j); } else { //write_a(0.0,j); write_b(0.0,j); } } //// return(0); }