2017年2月8日水曜日

RSI4 ソース張り忘れていました。 

ソースはじゃじゃーん

extern double lot=0.01,SL=0.6;
input int Magic1=911,Magic2=356;
int d,t[2];
bool t1f=1,t2f=1;
double CS;
void OnTick()
  {
    OrderT();
    if(t1f)
      {CT(0);}
    else
      {
      if(MAD()>0.01&&RSI(15)<65&&RSI(60)<65){t[0]=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"RSI-TACA",Magic1);CS=Bid+SL;}
      if(MAD()<-0.01&&RSI(15)>35&&RSI(60)>35){t[0]=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL,0,"RSI-TACA",Magic1);CS=Ask-SL;}
      }
   if(t2f)
      {CT(1);}
    else
      {
      if(RSI(5)>65&&RSI(15)<65&&RSI(60)<65){t[1]=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"RSI-TACA",Magic2);CS=Bid+SL;}
      if(RSI(5)<35&&RSI(15)>35&&RSI(60)>35){t[1]=OrderSend(Symbol(),OP_BUY ,lot,Ask,0,Ask-SL,0,"RSI-TACA",Magic2);CS=Ask-SL;}
      }
  }
double RSI(int TimeFrame){return(iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,1));}
double MAD(){return(Close[1]-iMA(Symbol(),5,14,0,MODE_SMA,PRICE_CLOSE,1));}
void OrderT()
{
t1f=false;t2f=false;
for(int i=OrdersTotal()-1;i>=0;i--)
  {
  d=OrderSelect(i,0);
  if(OrderTicket()==t[0]){t1f=true;}
  if(OrderTicket()==t[1]){t2f=true;}
  }
}
void CT(int c)
{
d=OrderSelect(t[c],1);    
if(OrderType()==OP_SELL&&CS>Bid+SL){CS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
if(OrderType()==OP_BUY &&CS<Ask-SL){CS=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
}

0 件のコメント:

コメントを投稿