//+------------------------------------------------------------------+ //| heikinashi.mq4 | //| Copyright 2008, FX scalper | //| | //+------------------------------------------------------------------+ #property copyright "Copyright 2008, FXscalper" #property link "" // 入力パラメータ定義 extern double Lots = 1.0; extern int SlipPage = 3; extern int Profit = 1000; extern int StopLoss = 1000; // マジックナンバー定義 int MagicNumber = 111111; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- // 共通変数定義 int ticket, i; // 平均足の取得 double haopen , haclose; haopen=iCustom(NULL,0,"Heiken Ashi",2,1); haclose=iCustom(NULL,0,"Heiken Ashi",3,1); // ポジションのチェック int buyTicket = -1; int sellTicket = -1; for (i = 0; i < OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true) { if(OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber) { if (OrderType() == OP_BUY) buyTicket = OrderTicket(); else if (OrderType() == OP_SELL) sellTicket = OrderTicket(); } } } if (buyTicket == -1 ) { //バーの始値でなければ処理無し if(Volume[0] > 1 || IsTradeAllowed() == false) return(0); if ( haopen 1 || IsTradeAllowed() == false) return(0); if (haopen>haclose) { // 売り注文を発注する ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, SlipPage, Bid+StopLoss*Point,Bid-Profit*Point, NULL, MagicNumber,0 , Red); } } // クローズ条件 if (buyTicket != -1 && haopen>=haclose ) { // 買い注文を決済する if (OrderClose(buyTicket, OrderLots(), Bid, SlipPage, Blue) == false) { } } else if (sellTicket != -1 && haopen<=haclose) { // 売り注文を決済する if (OrderClose(sellTicket, OrderLots(), Ask, SlipPage, Red) == false) { } } //---- return(0); } //+------------------------------------------------------------------+