2016年5月16日月曜日

EA TACA Bands

さて、TACA Bandsに挑戦する時が来ました。

じつは、ボリンジャーバンドの平均から偏差をとることには前々から大きな不信感がありました。
そこで終値から偏差をとるTACABandsです。



EURUSDの5Mです。期間は2015年一年間

スプレッドを1下げるとかなり改善しますのでみんなのFXやFXTFあたりでUSDJPY 0.3Pipsなんかも面白そうです。

#property copyright "Copyright 2016/5/16,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern int TSProfit=20;
extern int MAGIC=9;
extern int Spread=5;
extern double Lots=0.1;
datetime TimeOld;
int d,i;
double TSL,OTSL,SL;
double TACABands(int Mode)
{return(iBands(Symbol(),0,20,2,0,0,Mode,2)-iBands(Symbol(),0,20,2,0,0,0,2)+Close[2]);}
void OnTick()
{
TS();
if(OrdersTotal()==0){
if(MarketInfo(Symbol(),MODE_SPREAD)<=Spread){
if(Time[0]!=TimeOld){TimeOld=Time[0];
if(TACABands(2)>Close[1]){E(0);}
if(TACABands(1)<Close[1]){E(1);}
}}}}

void E(int BoS){
if(BoS==0){TSL=Ask;SL=TSL-TSProfit*Point;}
else{TSL=Bid;SL=TSL+TSProfit*Point;}
d=OrderSend(Symbol(),BoS,Lots,TSL,2,SL,0,NULL,MAGIC,0,0);}

void TS()
{d=OrderSelect(0,SELECT_BY_POS);if(OrderType()==0)
{if(TSL<Close[0]){TSL=Close[0];SL=TSL-TSProfit*Point;}}
  else
{if(TSL>Close[0]){TSL=Close[0];SL=TSL+TSProfit*Point;}}
if(TSL!=OTSL)
{OTSL=TSL;for(i=OrdersTotal()-1;i>=0;i--)
{d=OrderSelect(i,SELECT_BY_POS);
 d=OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0,0);}}}

0 件のコメント:

コメントを投稿