//+------------------------------------------------------------------+ //| サンプルプログラム | //+------------------------------------------------------------------+ // ******************************************************************** // 外部変数 // ******************************************************************** extern int magic = 63000; extern int SG_SLIP = 3; extern double SG_LOT = 0.01; extern double SG_LOSS = 1.5; extern double SG_STOP = 1.6; extern int check_sigma = 1; // 2σもしくは1σのどちらか extern int kako_sigma_count = 10; // 過去何回分をチェックするか #define D_NA 999 #define D_UP 2 #define D_DOWN 5 //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { // ********************************************************************* // 変数定義 // ********************************************************************* int now_torend = D_NA; int i; // ********************************************************************* // ポジションが存在していれば終了 // ********************************************************************* if(OrdersTotal() ==1) return(0); // ********************************************************************* // ポジションが無い場合は新規売買を行うか調査 // 本サンプルではボリンジャーバンドを使用して2σもしくは1σの外から // 中に入ってきたか(移動平均線に近づいてきたか)を判定して売買します // ********************************************************************* now_torend = D_NA; for(i=2;iClose[0]) && (iBands(NULL,PERIOD_M5,25,check_sigma,0,PRICE_CLOSE,MODE_UPPER,1)>Close[1]) ){ now_torend = D_DOWN; break; } } // Closeが 2σ or 1σ を下に超えているか if(iBands(NULL,PERIOD_M5,25,check_sigma,0,PRICE_CLOSE,MODE_LOWER,i)>Close[i]){ // 直前2回のcloseが2σ以上か if( (iBands(NULL,PERIOD_M5,25,check_sigma,0,PRICE_CLOSE,MODE_LOWER,0)