extern int MAmain = 21; //移動平均線の短期線の日数 extern int MAsign = 90; //移動平均線の長期線の日数 extern double lots = 1 ; //0.1 lots = 一万ドル 1lost = 十万ドル extern int slippage=3; //スリップページの設定 extern double stoploss = 50; //損切りの設定 extern double takeprofit = 100; //利食いの設定 //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //変数の宣言 int cnt, CurrentPosition; int Ticket; double kakoa,gennzaia; double kakob,gennzaib; // オーダーチェック //ポジションを持っていたら変数にポジションナンバーを入れる。 //ポジションが無い場合は−1を入れる。 CurrentPosition=-1; for(cnt=0;cnt= gennzaib) { //買いポジションを取る Ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, Ask -(stoploss * Point), Ask+(takeprofit * Point), "Buy", 10, 0, Red); } //もし短期線が長期線を上から下にクロスしたら if( kakoa > kakob && gennzaia <= gennzaib) { //売りポジションを取る Ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, slippage, Bid + (stoploss * Point),Bid - (takeprofit * Point), "Sell", 10, 0, Blue); } } // ポジション有り else { //ポジションの選択 OrderSelect(CurrentPosition,SELECT_BY_POS); //ポジションの確認 if(OrderSymbol() == Symbol()) { //もし買いポジションだったら if(OrderType()==OP_BUY) { //もし短期線が長期線を上から下にクロスしたら if( kakoa > kakob && gennzaia <= gennzaib) { //手仕舞い OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green); //ドテンで売りポジションを取る Ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, slippage, Bid + (stoploss * Point),Bid - (takeprofit * Point), "Sell", 10, 0, Blue); } } //もし売りポジションだったら else if(OrderType()==OP_SELL) { //b烽オ短期線が長期線を下から上にクロスしたら if( kakoa < kakob && gennzaia >= gennzaib) { //手仕舞い OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green); //ドテンで買いポジションを取る Ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, slippage, Ask -(stoploss * Point), Ask+(takeprofit * Point), "Buy", 10, 0, Red); } } } } return(0); } // the end. //+------------------------------------------------------------------+