2015年12月23日水曜日

おまけ EA COA M1 M5 Averaging ver 3.0 無料ソース付

EA COA M1 M5 Averaging のVersion3を作成しました。
オリジナルは取引数が多すぎ、そして決済価格が上昇する欠点を補うために、
最低価格以下でしか発注しないように改良しました。
取引数は減ったのですが損益も減りました><;

そこで現在の平均価格以下ならば発注するようにハードルを下げました。
結果はじゃじゃーん!!
取引数はオリジナルと比べ2/3に、決済価格は下降のみ
そして損益はほぼ同じという結果になりました。

さて、3つのバージョンの私TACA的評価ですが、
VER2.0>>>VER3.0>>>>>>オリジナル
ですね。

にほんブログ村 為替ブログ システムトレード 自作EA派へ
にほんブログ村


//  Cost Moving  2015/12/23
#property copyright "TACA"
#property link "mt4kyoto.blogspot.jp"
#define MAGIC 151216
extern int Profit=80;
extern int COAPriod=5;
extern int COAMode=0;
extern double Lots=0.02;
int OrderFlag=0;
int OrderFlagSub=0;
int d;
int Ticket=0;
double PosCheck;
double PosNow;
double PosAve=0;
int start()
{Averaging();
CHKFlag();
OrderSys();
return(0);}
int Averaging()
{PosAve=0;double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  { d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();}
  if (PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}  
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { Ticket=OrderTicket();
      d=OrderModify(Ticket,OrderOpenPrice(),0,PosAve+Profit*Point,0,Green);}}
  return(0);}
int CHKFlag()
{OrderFlag=0;
  if (iMA(NULL,PERIOD_CURRENT,COAPriod,0,COAMode,PRICE_OPEN,1)<iMA(NULL,PERIOD_CURRENT,COAPriod,0,COAMode,PRICE_CLOSE,1))
    {OrderFlag++;}
  if (iMA(NULL,5,COAPriod,0,COAMode,PRICE_OPEN,1)<iMA(NULL,5,COAPriod,0,COAMode,PRICE_CLOSE,1))
    {OrderFlag++;}  
return(0);}
int OrderSys()
{
if(PosAve>Ask){
if(OrderFlagSub<=1){
if(OrderFlag==2){d=OrderSend(NULL,0,Lots,Ask,10,0,Ask+Profit*Point,"COA Long",MAGIC,0,Red);}}}
if(OrdersTotal()==0){
if(OrderFlagSub<=1){
if(OrderFlag==2){d=OrderSend(NULL,0,Lots,Ask,10,0,Ask+Profit*Point,"COA Long",MAGIC,0,Red);}}}
OrderFlagSub=OrderFlag;
return(0);
}

0 件のコメント:

コメントを投稿