2017年4月30日日曜日

ごめんなさい! T2のソースコード抜けがありました!!

もうしわけございません!!
T2のソースコード間違えておりました。

お気づきの方もいらっしゃると思いますが、T2のソースコードに抜けがありました。
いやー最近MQL4書いていなかったから基礎的なところで間違えてしまいました。
ポジションを確認するところでOrderSelectするのを忘れています。

ただしくはこちらです。



#property copyright  "CopyRight 2017/04/30,TACA"
#property version    "1.00"
#property strict
int d,i;
datetime OldTime;
string S;
extern double lot=0.01;//ロット
extern int M=2;//MAGIC NUMBER
void OnInit(){S=Symbol();}
void OnTick()
{
if(Time[0]!=OldTime)
{
OldTime=Time[0];
if(OrdTtl()){CS();}
else
{
if(RSI(1)>70&&RSI(5)<60){EntrySell();}
if(RSI(1)<30&&RSI(5)>40){EntryLong();}
}
}
}
void EntryLong(){d=OrderSend(S,0,lot,Ask,0,Ask-0.3,0,"T2",M);d=OrderSelect(0,0);}
void EntrySell(){d=OrderSend(S,1,lot,Bid,0,Bid+0.3,0,"T2",M);d=OrderSelect(0,0);}
double RSI(int P){return(iRSI(S,P,14,0,0));}
int OrdTtl(){int OT=0;for(i=OrdersTotal()-1;i>=0;i--){d=OrderSelect(i,0);if(OrderMagicNumber()==M){OT++;}}return(OT);}
void CS(){
if(!OrderType()&&OrderStopLoss()+0.3<Ask){d=OrderModify(OrderTicket(),OrderOpenPrice(),Ask-0.3,0,0,0);}
if( OrderType()&&OrderStopLoss()-0.3>Bid){d=OrderModify(OrderTicket(),OrderOpenPrice(),Bid+0.3,0,0,0);}
}



2 件のコメント:

  1. 勉強になります。
    もう少しスプレッドが広くても使えそうですね。

    返信削除
    返信
    1. スプレッド7程度は動きそうですね
      この次のT3をもう少し改造してみようと思っています。
      素敵なのができますように

      削除