//------------------------------------------------------------------ // myTest_SMA_03.mq4 //------------------------------------------------------------------ #define myMAGIC 20111207 // extern double MovingPeriod = 12; extern double MovingShift = 6; extern double Lots = 1; // Regular //--------------- int init() { return(0); } //--------------- int deinit() { return(0); } //------------------------------------------------------------------ // オープンと待機中ポジションのチェック // int CheckCurrentOrders(string symbol) { int buys=0,sells=0; //---- for(int i=0;i0) return(buys); else return(-sells); } //------------------------------------------------------------------ // ポジションを開く(作成) // void Open_position() { double ma; int res; //---- Open値での動作用処理 // if(Volume[0]>1) return; //---- 移動平均値 ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0); //---- 売り if(Open[1]>ma && Close[1]ma) { res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",myMAGIC,0,Blue); return; } //---- } //------------------------------------------------------------------ // ポジションを閉じる // void Close_position() { double ma; //---- Open値での動作用処理 // if(Volume[0]>1) return; //---- 移動平均値 ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0); //---- for(int i=0;ima && Close[1]ma) OrderClose(OrderTicket(),Lots,Ask,3,White); break; } } //---- } //================================================================== // void start() { //---- 資産データをグローバル変数に格納 ---- GlobalVariableSet("myBalance",AccountBalance()); //---- 足数とトレード可否をチェック if(Bars<100 || IsTradeAllowed()==false) return; //---- 待機中ポジションのチェックと、ポジション処理 if(CheckCurrentOrders(Symbol())==0) Open_position(); else Close_position(); // } //------------------------------------------------------------------