2016年10月31日月曜日

SIGMA4 REMAKE

今朝、SIGMA4の定期テストをしました。

フォワードテストはボロ負けです。
リアルでは勝っている、負けていると様々なお話を頂戴いたしております。
同じEA、設定無しでこの違い原因がわからず困惑していました。

あと三時間で自動売買終了のO社のベーシック向けの開発でしたが、ブローカの負荷を考え様々な仕組みを入れています。その仕組みの影響にしても大きすぎます。

そんな中、FX-ON社にお願いしているフォワードテストを解析してみて、ふと気が付きました。
取引回数が少ない!

自宅フォワードの半分以下です。
可能性としてはフォワードに比べデモ口座はスプレッド変動が多く、スプレッドの上限を超える為発注できない。

もう一つは、スリッページを0にしています。
スリッページとは滑りの許容範囲ですが1にすると95%以上1損する側にずれます。
3でも90%以上損する側に3ずれるので0にしてあるのですが、ここが原因で発注の差が出ているのかもしれません。


右はFX-ONフォワードテストの取引パターン1-59と各取引回数
ほぼすべて70になるはずなのですが・・・

そこで、少し改良をしました。
まず発注時間の精度を上げました。

続いて一部ロジックの変更のNEWモードを追加しました。
もちろん今まで通りのオリジナルモードも使えます。

あまり好きな手法ではないのですが、未発注時の再エントリー機能を付けました。スリッページ等で発注できなかった時は何回かチャレンジします。

また、速度の障害になるいくつかの点を高速化重視で設定しました。

さて、試験開始です!
いい結果+今実施している試験の結果が出れば即アップします!










※FX-ON社コメントに先日調子が良くなってきたとコメントありがとうございました。
技術的な問題や設定等に関してはお答えさせていただいておりますが、利益が出た。損失が出た。その原因や対策についてのコメントには回答を控えさせていただいております。
折角のコメント返信なしでごめんなさい。
お気持ちはありがたく頂戴しております!!







11/2 18:00途中経過!


2016年10月27日木曜日

EA ESCALATOR BOY ソースあり

エスカレーターのマナーが変わってきています。
大阪では右側に立って左側を急ぐ人の為に開けます。
NY、ロンドン、パリ、香港など私の知っている大都市は右に立ちます。
しかし東京は左に立つようです。
京都は・・・前の人が立っている方向に並びます。
同じエスカレーターでも雰囲気で毎日変わります・・・

しかし、そごう横浜では二列に並んでくださいと係員がやっていました。
エレベーター前の混雑の原因は一列に立つことのようです。
そして、江の島以外のエスカレーターはほぼ無料です。
その無料のエスカレーターのメンテしてくださっている人の意見はなんと
「エスカレーターは歩かないでください!」でした。
危険という事と片方に並ぶと消耗品の片べりを起こすようです。

あなたはどちらでしょうか?
わたしは、二列派です!が、雰囲気によって片側によってしまいます。自分が無いですね

さて、スワップで利益を得たいとは、だれでも考えたことがあるのではないでしょうか。
AUDJPYを60円くらいで買っておけばよかったなと私もよく考えます。
※さてで始まる時は機嫌がいい時のようです。

三条京阪ブックオフ前のエスカレーターを見ていた時に思いついたのがこのEAです。
例えばAUDJPY、スワップはロングにつきます。

まず1本エントリーします。この時にはSL/TPは設定しません。
さらに0.1円下がったらもう一本発注します。この発注にもSL/TPは設定なしですが、この前の注文には発注価格+アルファでTPを付けます。

ポジションの運命は
①発注して決済されたもの⇒少し利益
②発注して未決済の物⇒スワップ獲得と損失
③一番最安値のポジション⇒スワップ獲得

バックテストではスワップは計算されませんが価格にある程度の幅がありますので長期ほったらかしには使えそうです。


 設定はこんな感じです。
MAGIC 1900 マジックナンバーです。世界最初のエレベーターは1900年にできたそうですので1900です。

SpreadLimit スプレッドの上限です13の場合1.3Pipsです。

Type Swapの方向です。AUDJPYのようにチャートが上昇してSWAPがもらえる時はSWAPUP、逆はSWAPDOWNにしてください。

LOTS ロットです。

TakeProfit 最初にエントリーしたTP/SLなしのポジションの利益確定です。
0の場合はTakeProfitはありません。例えば1円上がったらスワップより利益を取りたいという時には1000と入れて下さい。Point単位です。

Step こちらもPOINT単位です。100の場合初めに110円でエントリーした場合109.9円で追加オーダーと以前のロットのTP/SLをセットします。

そしてネーミングのエスカレーターボーイはエスカレーターが下がるようにポジションのオーダー価格が下がるというネーミングです。

使用できる金額と、耐えられる含み損を考えて設定をしてください。

バックテストはビジュアルモードがおすすめです。
月平均が上昇している時が最適です。



//+------------------------------------------------------------------+
//|                                                    ESCALATOR BOY |
//|                                      Copyright 2016, TACA        |
//|                                       http://taca.asia/          |
//+------------------------------------------------------------------+
enum LoS{SwapUp,SwapDown};
input int MAGIC=1900;
input int SpreadLimit=13;
input LoS Type=1;
input double Lots=0.01;
input int TakeProfit=0;
input int Step=100;
int d,i,Cnt;
double TP,Stp,PoO,OOP;
//Cnt:Count TP:TakeProfit Stp:Step PoO:Price on Order OOP:Order Open Price
int OnInit()
  {
   TP=TakeProfit*Point;
   Stp=Step*Point;
   return(0);
  }
//+------------------------------------------------------------------+
//|Ticker Boy                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {

   if(SprChk() && OrdTtl()==0){Entry();}
   if(Type && PoO+Stp<Close[0] && OrdTtl()!=0){Modify();Entry();}
   if(!Type && PoO-Stp>Close[0] && OrdTtl()!=0){Modify();Entry();}
  }
int SprChk(){return(MarketInfo(Symbol(),MODE_SPREAD)<=SpreadLimit);}
int OrdTtl(){Cnt=0;for(i=OrdersTotal()-1;i>=0;i--){d=OrderSelect(i,0);if(OrderMagicNumber()==MAGIC){Cnt++;}}return(Cnt);}
//+------------------------------------------------------------------+
//|Entry Boy                                                                  |
//+------------------------------------------------------------------+
void Entry()
  {
   if(TP==0)
     {
      if(Type)
        {PoO=Bid;d=OrderSend(Symbol(),OP_SELL,Lots,PoO,0,0,0,NULL,MAGIC);}
      else
        {PoO=Ask;d=OrderSend(Symbol(),OP_BUY,Lots,PoO,0,0,0,NULL,MAGIC);}
     }
   else
     {
      if(Type)
        {PoO=Bid;d=OrderSend(Symbol(),OP_SELL,Lots,PoO,0,0,PoO-TP,NULL,MAGIC);}
      else
        {PoO=Ask;d=OrderSend(Symbol(),OP_BUY,Lots,PoO,0,0,PoO+TP,NULL,MAGIC);}
     }
  }
//+------------------------------------------------------------------+
//|Modify Boy                                                                  |
//+------------------------------------------------------------------+
void Modify()
  {
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {
         OOP=OrderOpenPrice();
         if(Type)
         {d=OrderModify(OrderTicket(),OOP,0,OOP-Stp,0);}
         else
         {d=OrderModify(OrderTicket(),OOP,0,OOP+Stp,0);}
        }
     }
  }
//+------------------------------------------------------------------+

2016年10月25日火曜日

SWAP SPREAD CHECKER 主要通貨一括表示!無料ソースあり!

天皇陛下が京都へお戻りです。
お戻りと書くとまた京都の人は訳の分からんことをと思われる方が多いのですが・・・

日本の首都WIKI WIKIを根拠に出すのもなんですが、なかなかまとまっています。

さて、話がだいぶそれました。
最近ブローカーを探求しています。
この人はまた特定ブローカー専用EAを開発しようとしているのかとの声が聞こえてきそうですが、
その通りです!!

日本のブローカーがすこしづつなくなっていく中、期待したR社は突然のスプレッド沸騰が頻発し、O社のBコースは自動売買ができなくなります。
低スプレッドという国内ブローカーの魅力が薄れてきています。
同じ通貨量を購入する場合、はレバレッジが高いほうが有利です。

と、当たり前の話なのですがスプレッドやスワップを見て行くのは大変労力がいります。
一通貨ペアずつ紙に書いて平均を測って・・・

そこで!!主要通貨のでスプレッド、スワップをまとめてみるEAを作りました。
またしてもインディケーターではありませんw

主要通貨ペアは私の独断と偏見で決めましたw
通貨ペアの末尾の-a01などは自動判別です。内部でコッソリ処理しています。
OANDA JAPAN PROはoj1mチャートとoj5kチャートで別々に実施してください。



まずは女王陛下をこよなく愛する国のA社 サーバーはいまTY3かな
左端に通貨ペアが並んでいます。 その右はLONGとSHORTのSWAP
そしてその右が現在のスプレッド 起動してからの最大スプレッド、最小スプレッド、平均スプレッドです。ティック動作は複数通貨ペアでは出来ませんので、1/10秒が1単位となっています。

EURUSDのMIN 0がすばらしいですね。
スプレッドはオセアニアですがよさげです。

ここは手数料が別途必要ですがなかなか素敵です。




続いて女王陛下を愛する北アメリカの国OANDA社JAPAN FX 1Mと5K比較です。
片方しか出ていない人は気配値表示を右クリック⇒「通貨ペア」で設定してください。
各通貨ペアが二個づつ出てきます。レートは別々です。

USDJPYは0.6円、EURJPYは0.8円、その他ほとんどの平均スプレッドは5kが安くなっています。しかし高スワップのTRYJPY、ZARJPYは1mが安くなっていますね。
スワップは同条件のようです。
通貨ペアごとに選択する必要があります。



次はマルタ騎士団で有名なあの国のブローカーです。
べらぼうなスプレッドですが、世界的にはこれが標準なのでしょう。
USDJPYが+スワップ0.959は感動的です。



ストップレベル50のFXTFです。
短期取引には全く向かない会社ですが、
スワップの差がほとんどありません。
いままで気が付いていませんでしたが、これは良心的な会社ですね!!
また、スプレッドも全くぶれません。

OANDA社のNZDJPYのLONGスワップは3.4 FXTF社のSHORTスワップは-0.66
これを両建てすればw 




そして楽天-CM
ぐは!!スワップが見れない・・・
USDJPY,AUDJPYで0が出たのは素晴らしいですね。
平時のこれをみると大変素晴らしいブローカーです!




最後に888倍のあの会社です。
スワップは残念ですが、海外にしてはスプレッドは控えめですね。










//+------------------------------------------------------------------+
//|                                                Spread Swap Check |
//|                                      Copyright 2016, TACA        |
//|                                                        taca.asia |
//+------------------------------------------------------------------+
#property copyright"Copyright 2016/10/25,TACA"
#property strict
string Pair[13]={"USDJPY","EURUSD","GBPUSD","EURJPY","EURCHF","GBPJPY","EURGBP","AUDUSD","AUDJPY","NZDUSD","NZDJPY","TRYJPY","ZARJPY"};
string PairTail,txt,Sym;
double MaxSpr[13],MinSpr[13],AveSpr[13],CouSpr,NowSpr;
int x[7]={0,70,110,210,240,270,300};
int y[13]={40,60,80,100,120,140,160,180,200,220,240,260,280};
int d,i,j;
//+------------------------------------------------------------------+
//|Initialize                                                        |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetMillisecondTimer(100);
   PairTail=StringSubstr(Symbol(),6,StringLen(Symbol())-6);
   for(i=0;i<13;i++)
     {
      Sym=Pair[i]+PairTail;
      NowSpr=MarketInfo(Sym,MODE_SPREAD);
      MaxSpr[i]=NowSpr;
      MinSpr[i]=NowSpr;
     }
     ObjectCreate(0,"objT",OBJ_LABEL,0,0,0);
         ObjectSetInteger(0,"objT",OBJPROP_XDISTANCE,0);
         ObjectSetInteger(0,"objT",OBJPROP_YDISTANCE,20);
         ObjectSetInteger(0,"objT",OBJPROP_BACK,False);
      ObjectSetText("objT","PAIR SWAP LONG SHORT  SPREAD NOW MAX MIN AVE",8,"Verdana",Yellow);
     
     
     
   for(i=0;i<7;i++)
     {
      for(j=0;j<13;j++)
        {
         ObjectCreate(0,"obj"+(string)i+(string)j,OBJ_LABEL,0,0,0);
         ObjectSetInteger(0,"obj"+(string)i+(string)j,OBJPROP_XDISTANCE,x[i]);
         ObjectSetInteger(0,"obj"+(string)i+(string)j,OBJPROP_YDISTANCE,y[j]);
         ObjectSetInteger(0,"obj"+(string)i+(string)j,OBJPROP_BACK,False);
        }
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|Good Bye Baby^^/                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,OBJ_LABEL);
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//|Check Spread Swap                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   CouSpr++;
   txt="Pair     SWAP Long Short  Spread Now Max Min Ave\n";
   for(j=0;j<13;j++)
     {
      Sym=Pair[j]+PairTail;
      ObjectSetText("obj0"+(string)j,Pair[j],8,"Verdana",Yellow);
      ObjectSetText("obj1"+(string)j,StringSubstr((string)MarketInfo(Sym,MODE_SWAPLONG),0,5),8,"Verdana",Yellow);
      ObjectSetText("obj2"+(string)j,StringSubstr((string)MarketInfo(Sym,MODE_SWAPSHORT),0,5),8,"Verdana",Yellow);
      NowSpr=MarketInfo(Sym,MODE_SPREAD);
      if(MaxSpr[j]<NowSpr){MaxSpr[j]=NowSpr;}
      if(MinSpr[j]>NowSpr){MinSpr[j]=NowSpr;}
      AveSpr[j]+=NowSpr;
      ObjectSetText("obj3"+(string)j,(string)NowSpr,8,"Verdana",Yellow);
      ObjectSetText("obj4"+(string)j,(string)MaxSpr[j],8,"Verdana",Yellow);
      ObjectSetText("obj5"+(string)j,(string)MinSpr[j],8,"Verdana",Yellow);
      ObjectSetText("obj6"+(string)j,StringSubstr((string)(AveSpr[j]/CouSpr),0,5),8,"Verdana",Yellow);
      
      
      
      txt+="            "+(string)NowSpr+"    "+(string)MaxSpr[i]+"    "+(string)MinSpr[i]+"    "+StringSubstr((string)(AveSpr[i]/CouSpr),0,5);
      txt+="\n";
     }
//Comment(txt);
  }
//+------------------------------------------------------------------+

2016年10月24日月曜日

EA ALLTIME (仮称) 久々の無料公開 ソース付き!

のーんびりしたEAを作っています。
条件設定がまだなのですが、スワップの取れる方向にのみエントリーするものです。
例えばAUDJPYでLONG方向にスワップが付くとします。
月、週、日の平均が上昇している時でRSIの条件が合えばエントリーします。
逆に月、週、日の平均のひとつでも下降している時はエントリーしません。
つまりエントリーしない時は何カ月もエントリーなしです。
(設定でスワップが付かない方向にもエントリーさせることができます)

ソースコードは10行以内がいいのですが、見やすくしたら300行程度になってしまいました。

利益確定額、追加発注金額をうまく調整するとのんびり長期にも短期型にもなります。
取りあえずAUDUSDで一ヶ月ほどしてみました。
最後はエントリー中にテスト期限が来て強制クローズで下がっています。
エントリーは最大4本 エントリーして追加発注額損失が出ると1本追加
最初のエントリーから追加発注額の4倍損失でもう一本、6倍でさらにもう一本です。

OANDAベーシック最終EAと似たような画面表示もありますので、自動売買OFFでも使えます。
時間の都合で条件設定が出来ていないのと、ロジックが検討できていませんが、
素敵な設定が出たら教えて下さい。














// This is TACA'S EA FOR OANDA BASIC.
#property copyright"CopyRight,Taca 2016/10/20"
#property description"Testing model"
#property strict
input int MAGIC=54720;//魔法数字
input ENUM_MA_METHOD MAMODE=2;//平均の種類
input int MAPRD=5;//平均の期間
input int RSIPRD=14;//RSIの期間
input int RSIUL=70;//RSIの売りライン
input int RSIDL=30;//RSIの買いライン
input int RSIOrdPrd=1;//RSIの発注期間
input double Lots=0.01;//ロット
input int SpreadLimit=30;//スプレッド上限
input int AdditionalOrder=5000;//追加発注金額
input double Profit=0.5;//利益確定額
input bool SwapMode=False;//スワップモード
input string Com="EA AllTime";//コメント
input color TxtClr=clrWhite;//文字色
input color TxtImpClr=clrYellow;//強調文字
bool SwapUp,SwapDown,SprLim,OrdType,RSIU[6],RSID[6],MAU[6],MAD[6];
color OBJCLR[14];
datetime Past;
double Ave,Prf,SprMax,SprMin,SprAve,SprNow,SprCou=1;
int x[14]={5,5,5,5,150,155,150,172,193,212,233,253,150,230};
int y[14]={25,40,55,70,10,25,40,40,40,40,40,40,55,55};
int Per[6]={43200,10080,1440,60,15,1};
int Pos,i,d,OBJFSI[14];
string Text[14],Obj[14];
string UD[3]={"U","D","N"};
string MAMODETxt[4]={"Simple MA ","Exponential MA ","Smoothed MA ","Linear Weighted MA "};
//+------------------------------------------------------------------+
//|Opening                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   for(i=0;i<14;i++)
     {
      Obj[i]="Label"+(string)i;
      ObjectCreate(0,Obj[i],OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,Obj[i],OBJPROP_XDISTANCE,x[i]);
      ObjectSetInteger(0,Obj[i],OBJPROP_YDISTANCE,y[i]);
      ObjectSet(Obj[i],OBJPROP_BACK,true);
      ObjectSetInteger(0,Obj[i],OBJPROP_BACK,False);
      OBJFSI[i]=8;
      OBJCLR[i]=TxtClr;
     }
   d=ChartSetInteger(0,CHART_COLOR_BACKGROUND,Black);
   d=ChartSetInteger(0,CHART_COLOR_FOREGROUND,White);
   d=ChartSetInteger(0,CHART_COLOR_GRID,Gray);
   d=ChartSetInteger(0,CHART_COLOR_CHART_UP,Red);
   d=ChartSetInteger(0,CHART_COLOR_CHART_DOWN,Blue);
   d=ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,Red);
   d=ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,Blue);
   d=ChartSetInteger(0,CHART_COLOR_CHART_LINE,Green);
   SprSet();//Spread Setting
   SprChk();//Spread Check
   Write(); //データー記述
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|Ending                                                            |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(i=0;i<14;i++){ObjectDelete(Obj[i]);Comment("");}
  }
//+------------------------------------------------------------------+
//|CORE                                                              |
//+------------------------------------------------------------------+
void OnTick()
  {
   SprChk();//Spread Check
   MAChk();//MAチェック
   RSIChk();//RSI CHECK
   Order(); //発注機関
   StopLoss();//ストップロス
   Write(); //データー記述
  }
//+------------------------------------------------------------------+
//|Entry Long                                                        |
//+------------------------------------------------------------------+
void EntryLong()
  {
   if(SprLim)
     {
      d=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,Ask+Profit,Com,MAGIC);
      OrdType=True;
     }
   Average();
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {
         d=OrderModify(OrderTicket(),OrderOpenPrice(),0,Ave+Profit,0);
        }
     }
  }
//+------------------------------------------------------------------+
//|Entry Short                                                       |
//+------------------------------------------------------------------+
void EntryShort()
  {
   if(SprLim)
     {
      d=OrderSend(Symbol(),OP_SELL,Lots,Bid,0,0,Bid-Profit,Com,MAGIC);
      OrdType=False;
     }
   Average();
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {
         d=OrderModify(OrderTicket(),OrderOpenPrice(),0,Ave-Profit,0);
        }
     }
  }
//+------------------------------------------------------------------+
//|Averaging                                                         |
//+------------------------------------------------------------------+
void Average()
  {
   Ave=0;Pos=0;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {Ave+=OrderOpenPrice();Pos++;}
     }
   Ave=Ave/Pos;
  }
//+------------------------------------------------------------------+
//|Order Machine                                                     |
//+------------------------------------------------------------------+
void Order()
  {
   if(Time[0]!=Past)
     {
      Past=Time[0];
      //ポジション確認
      Pos=0;
      for(i=OrdersTotal()-1;i>=0;i--)
        {
         d=OrderSelect(i,0);
         if(OrderMagicNumber()==MAGIC){Pos++;Prf=OrderProfit();}
        }
      //スワップ
      SwapUp=False;
      SwapDown=False;
      if(MarketInfo(Symbol(),MODE_SWAPLONG )>=0){SwapUp=True;}
      if(MarketInfo(Symbol(),MODE_SWAPSHORT)>=0){SwapDown=True;}
      if(!SwapMode){SwapUp=True;SwapDown=True;}
      //初回発注
      if(MAU[0]&&MAU[1]&&MAU[2]&& RSI(RSIOrdPrd)<RSIDL && Pos==0 && SwapUp){EntryLong(); }
      if(MAD[0]&&MAD[1]&&MAD[2]&& RSI(RSIOrdPrd)>RSIUL && Pos==0 && SwapDown){EntryShort();}
      //追加発注1
      if(OrdType  && MAU[0]&&MAU[1]&&MAU[2]&& RSI(RSIOrdPrd)<RSIDL && Pos==1 && SwapUp && Prf<-AdditionalOrder){EntryLong();}
      if(!OrdType && MAD[0]&&MAD[1]&&MAD[2]&& RSI(RSIOrdPrd)>RSIDL && Pos==1 && SwapDown && Prf<-AdditionalOrder){EntryShort();}
      //追加発注2
      if(OrdType  && MAU[0]&&MAU[1]&&MAU[2]&& RSI(RSIOrdPrd)<RSIDL && Pos==2 && SwapUp && Prf<-AdditionalOrder*3){EntryLong();}
      if(!OrdType && MAD[0]&&MAD[1]&&MAD[2]&& RSI(RSIOrdPrd)>RSIDL && Pos==2 && SwapDown && Prf<-AdditionalOrder*3){EntryShort();}
      //追加発注3
      if(OrdType  && MAU[0]&&MAU[1]&&MAU[2]&& RSI(RSIOrdPrd)<RSIDL && Pos==3 && SwapUp && Prf<-AdditionalOrder*5){EntryLong();}
      if(!OrdType && MAD[0]&&MAD[1]&&MAD[2]&& RSI(RSIOrdPrd)>RSIDL && Pos==3 && SwapDown && Prf<-AdditionalOrder*5){EntryShort();}
   
   
     }
  }
//+------------------------------------------------------------------+
//|StopLoss                                                                  |
//+------------------------------------------------------------------+
void StopLoss()
  {
   if(OrdType && RSID[0] && !RSIU[0]){CloseAll();}
   if(!OrdType && RSIU[0] && !RSID[0]){CloseAll();}
  }
//+------------------------------------------------------------------+
//|Write on Display                                                  |
//+------------------------------------------------------------------+
void Write()
  {
//if(IsDemo() && !IsVisualMode()){return;}
//Note Time
   Text[4]="MN W1 D1 H1 QH M1";
//Note MA
   Text[0]=MAMODETxt[MAMODE]+"("+(string)MAPRD+") ";
   Text[5]=NULL;
   for(i=0;i<6;i++)
     {
     if(MAU[i]){Text[5]+=UD[0]+"   ";}
     else if (MAD[i]){Text[5]+=UD[1]+"   ";}
     else{Text[5]+=UD[2]+"   ";}
     }
//Note RSI

   Text[1]="RSI("+(string)RSIPRD+")";
   for(i=6;i<12;i++)
     {
      Text[i]=(string)RSI(Per[i-6]);
      OBJFSI[i]=8;
      OBJCLR[i]=TxtClr;
      if(RSIU[i-6]){OBJFSI[i]=10;OBJCLR[i]=TxtImpClr;}
      if(RSID[i-6]){OBJFSI[i]=10;OBJCLR[i]=TxtImpClr;}
     }
//Note SWAP
   Text[2]="SWAP";
   double TF;
//SWAP LONG
   TF=NormalizeDouble(MarketInfo(Symbol(),MODE_SWAPLONG),3);
   Text[12]="Long ";
   if(TF>=0){Text[12]+=StringSubstr((string)TF,0,4);}
   else{Text[12]+=StringSubstr((string)TF,0,5);}
//SWAP SHORT
   TF=NormalizeDouble(MarketInfo(Symbol(),MODE_SWAPSHORT),3);
   Text[13]="Short ";
   if(TF>=0){Text[13]+=StringSubstr((string)TF,0,4);}
   else{Text[13]+=StringSubstr((string)TF,0,5);}
   if(SwapUp){OBJFSI[12]=10;OBJCLR[12]=TxtImpClr;}else{OBJFSI[12]=8;OBJCLR[12]=TxtClr;}
   if(SwapDown){OBJFSI[13]=10;OBJCLR[13]=TxtImpClr;}else{OBJFSI[13]=8;OBJCLR[13]=TxtClr;}
//Note SPREAD
   Text[3]="SPREAD Now "+(string)SprNow+" / Max "+(string)SprMax
           +" / Min "+(string)SprMin+" / Ave "+(string)NormalizeDouble(SprAve,1);
//Display
   for(i=0;i<14;i++){ObjectSetText(Obj[i],Text[i],OBJFSI[i],"Verdana",OBJCLR[i]);}
  }
//+------------------------------------------------------------------+
//|MA CHECK                                                          |
//+------------------------------------------------------------------+
void MAChk()
  {
  for(i=5;i>=0;i--)
     {
     MAU[i]=False;
     MAD[i]=False;
      if(MA(Per[i],2)<MA(Per[i],1)){MAU[i]=True;}
      if(MA(Per[i],2)>MA(Per[i],1)){MAD[i]=True;}
      if(i==5&&!MAU[5]&&!MAD[5]){MAU[5]=True;MAD[5]=True;}
      if(MAU[i]==MAD[i]){MAU[i]=MAU[i-1];MAD[i]=MAD[i-1];}
     }
  }
//+------------------------------------------------------------------+
//|Moving Avarage                                                    |
//+------------------------------------------------------------------+
double MA(int Prd,int Times){return(iMA(Symbol(),Prd,MAPRD,0,MAMODE,PRICE_CLOSE,Times));}
//+------------------------------------------------------------------+
//|RSI Check                                                         |
//+------------------------------------------------------------------+
void RSIChk()
  {
   for(i=0;i<6;i++)
     {
      RSIU[i]=False;
      RSID[i]=False;
      if(RSI(Per[i])>RSIUL||RSI(Per[i])==0){RSIU[i]=True;}
      if(RSI(Per[i])<RSIDL||RSI(Per[i])==0){RSID[i]=True;}
     }
  }
//+------------------------------------------------------------------+
//|RSI                                                               |
//+------------------------------------------------------------------+
int RSI(int Prd)
  {return((int)iRSI(Symbol(),Prd,RSIPRD,PRICE_CLOSE,0));}
//+------------------------------------------------------------------+
//|Spread Check                                                      |
//+------------------------------------------------------------------+
void SprChk()
  {
   SprNow=MarketInfo(Symbol(),MODE_SPREAD);
   SprCou++;
   SprAve=(SprAve*(SprCou-1)+SprNow)/SprCou;
   if(SprMax<=SprNow){SprMax=SprNow;}
   if(SprMin>=SprNow && SprNow!=0){SprMin=SprNow;}
   if(SpreadLimit>=SprNow){SprLim=True;}else{SprLim=False;}
  }
//+------------------------------------------------------------------+
//|Spread Setting                                                    |
//+------------------------------------------------------------------+
void SprSet()
  {
   SprNow=MarketInfo(Symbol(),MODE_SPREAD);
   SprMax=SprNow;
   SprMin=SprNow;
   SprAve=SprNow;
  }
//+------------------------------------------------------------------+
//|CloseAll                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC){d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);}
     }
  }
//+------------------------------------------------------------------+

2016年10月20日木曜日

【検証】フォワードテストとデモ口座の差異 後編

試験が終わりました。

同じVPSで同じブローカー同じコースで同じ条件で発注してどれくらい差が出るかを見ます。

前回の21:30にポジションを持っていないと固定TP/SLで発注するEAです。

MT4-1
MT4-2
MT4-3
MT4-4
MT4-5

見にくいのですね。表にしましょう。



00秒付近の発注
サーバー1と4は二回発注しています。
2,3,5は0秒前後の発注が欠けています。
1と4は発注時間が1秒ずれましたが価格は同じです。

06秒付近の発注
こちらはすべて発注していますが5は2秒早く発注しています。
5は他と比べ0.3Pips差があります。
決済時間は1,2が10秒、3,4は11秒、5は19秒です。
価格は少数以下626が2個 627が1個 630が1個 624が1個
最大0.6Pipsの差があります。

全く同じVPSに同じサーバーでも発注最大差0.3Pips+決済最大差0.6Pips
合計0.9Pipsの差が出る可能性があるようです。
スプレッドが0.4なので影響は非常に大くなります。
実質スプレッドは最大1.3Pips??

同一の環境でこのずれが起こるという事はMYFXBOOKを使ってもこの程度の差は出るという事です。
今回は単回ですが回数を重ねるともう少しまるくなるのかもしれません。

フォワードも、フロントも目安にはなるが、完全に同一にはならないのですね。
















【検証】フォワードテストとデモ口座の差異 前編

最近M氏とメールのやり取りをよくしているのですが、
送ったメールを読み返してみると最近書いている文章がどうも愚痴っぽい。
それでも返してくれるM氏には感謝です!

さてその愚痴ですが、バックテストと実運用で違いが出るとはよく聞く話です。
バックテストはご承知の通りと思うのですが、スプレッド完全固定にスリッページ0です。
わたし的にはなかなか精度は高いと思うのですが、架空のティックを作り出しているので全く話にならないとの書き込みもよく見ます。

続いてフォワードテストが信じられないといった話ですが、
例えばFX-ONでよく使われているのはOANDA デモ口座でのフォワードテストです。
もうすぐ自動売買ができなくなるベーシックコースと同じスプレッドです。

デモ口座はティック数が少ない事が多くあり、時間の欠けもよくあります。
しかし、ブローカーが違えばもっと大きな差がでます。
また、VPS,PCの環境によっても違いが出ます。
そういったことからMYFXBOOKでリアル運用を見せてほしいと言ったお話がよくあります。

しかしMYFXBOOKと実運用は全く同じになるかという事ですが、
やはりここにも差異を生じる要因があります。
一つはVPS,PCの環境差
1ブローカーでの複数EAの運用
サーバーの処理の差です。

複数EAを走らせているうえでのずれは複数走らせないことで解決できます。

VPS,PCのずれは同じVPS業者を使う事である程度解決できます。

VPSのある程度のずれとサーバーのずれを見てみたいと思います。
OANDA ベーシックコース5口座で同時に発注して差が出るかどうか試験をします。
同じVPS、おなじサーバーで差異が出るのでしょうか?

今回はこのEAです。
結果はいかに!?

extern int hh=15,mm=30;
void OnTick(){if(Hour()==hh&& Minute()==mm&&OrdersTotal()==0)
{int d=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,Ask-0.02,Ask+0.02,NULL,1);}}



2016年10月18日火曜日

世界最後のOANDAベーシックコース専用EA!!

さて、OANDA社のEAの自動売買終了まで二週間を切りました。
OANDA社によると、自動売買は出来なくなるがシグナル配信やインディケーターは使えるとの事。
もう、ベーシックコースは諦めるしかないと誰もが思うところなのでしょうが、
そこに壁があるから人は知恵を働かせ成長するのです。

OANDA社ベーシックコース専用EAを作りました。
専用EAはこれが世界で最後ではないでしょうか!!


自動売買は出来ないという大前提があります。
今回作ったのは裁量アシスト型EA

むりくりにでもインディケーターにしなかったのはこだわりという事にしておいてくださいw

コメント欄に月、週、日、時間、クオーター時間、分のSMMA5、RSI そしてスワップを表示します。

SMMAは平滑移動平均線かんたんにいうと「尖がりにくい」平均です。
期間の長いEMAとも言えますがw
矢印が出ています。SMMA期間5が上向けか下向けかを見ています。

次はRSI70/30を超えると反転の目安です。
H1が70を超えています。。

そしてSWAP B(uy) / S(ell) 買いスワップは0.26、売りスワップは-0.54です。

使い方としてはSWAPがプラスの方にエントリーします。
この図ではLONG、BUYです。 まだここではエントリーの方向を決めるだけです。

次はMN(月)W1(週)D1(日)の方向がSWAPの方向と同じ方向か確認します。

その次はH1,M15,M1のRSIを確認します。
M1のみが30を切っている時は数PIPS
M1とM15が30を切っている時は数十PIPS
M1,M15,M30が30を下回っている時は数百PIPS程度にTP(利益確定)を設定します。

また、数百PIPS損が出たら追加で同じ方向にエントリーします。


これは、何をしているかというと含み損をマネージメントしたストップロスの無い裁量取引です。
最後のRSI確認がエントリーと利益の目安です。
しかし、RSI通りにいかないこともあります。
そんな時は大きな足MN,W1,D1の方向にいつかは進むというのを待ちます。
ストップロスで損失を決めるのではなく、放置すれば利益に代わる方向を見ています。

そして、SWAPのつく方向にエントリーすることで、未決済期間に利益を稼ぎます。
更に、大きく損失が出た時には難平をして、価格を平均化します。
ドル円でいうと数円で追加エントリーをしますので、10円動くことを考えても4~5本あれば大丈夫と思います。

ハ〇●バ先に50万円ほど入金して5000通貨で数ペア動かし、追加エントリーは5円が私流です。のーんびり確実に稼ぐやり方ですね


// This is TACA'S EA FOR OANDA BASIC.
string Text;
string UD[2]={"↑","↓"};
int Per[6]={43200,10080,1440,60,15,1};
int i;
int OnInit(){EventSetTimer(1);return(0);}
void OnDeinit(const int reason){EventKillTimer();}
void OnTimer()
{
//期間表示
Text="             MN W1 D1 H1 M15 M1\nSMMA5   ";
//SMMA5 表示
for(i=0;i<6;i++)
{
if(MA(Per[i],1)<MA(Per[i],0)){Text+=UD[0];}else{Text+=UD[1];}
Text+="    ";
}
//RSI表示
Text+="\nRSI        ";
for(i=0;i<6;i++){Text+=RSI(Per[i])+"  ";}
//SWAP表示
Text+="\nSWAP B/S   "+MarketInfo(Symbol(),MODE_SWAPLONG)
                 +" / "+MarketInfo(Symbol(),MODE_SWAPSHORT);
//コメント表示
Comment(Text);
}
//平均関数
double MA(int Prd,int Times){return(iMA(Symbol(),Prd,5,0,MODE_SMMA,PRICE_CLOSE,Times));}
//RSI関数
int RSI(int Prd){return(iRSI(Symbol(),Prd,14,PRICE_CLOSE,0));}





2016年10月13日木曜日

高精度EAの作成 RSI調査編 EMAにしてみよう!

単純な上下より平均EMAはどうかいうご意見が聞こえてきそうです。

extern int RSILevel=70;
extern double Getter=0.01;
extern int LongWave=580 ;
int d,T;
double Signal;
void OnTick()
{
if(Time[0]!=T)
{
T=Time[0];
Signal=iMA(Symbol(),PERIOD_CURRENT,LongWave,0,MODE_EMA,PRICE_CLOSE,0);
 if(Signal>Close[0])//追加
  {if(iRSI(Symbol(),PERIOD_CURRENT,14,0,0)>RSILevel)
   {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,Bid+Getter,Bid-Getter,NULL,1);}
  }
 if(Signal<Close[0])//追加
  {if(iRSI(Symbol(),PERIOD_CURRENT,14,0,0)<100-RSILevel)
   {d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,0,Ask-Getter,Ask+Getter,NULL,1);}
  }
 }
}

やっちゃいましょう

期間は先ほどと同じ580

勝率は


やはりだめですね。

ポジションを4回に絞ってから勝率を上げていきます

高精度EAの作成 RSI調査編 トレンド追加

トレンドは平均EMAが好きなのですが、
EMAよりも直接x回前との上下比較は直近の影響が大きく、反応も速いので採用してみました。

extern int RSILevel=70;
extern double Getter=0.01;
extern int LongWave=580 ;
int d,T;
void OnTick()
{
if(Time[0]!=T)
{
T=Time[0];
 if(Close[LongWave]>Close[0])//追加
  {if(iRSI(Symbol(),0,14,0,0)>RSILevel)
   {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,Bid+Getter,Bid-Getter,NULL,1);}
  }
 if(Close[LongWave]<Close[0])//追加
  {if(iRSI(Symbol(),0,14,0,0)<100-RSILevel)
   {d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,0,Ask-Getter,Ask+Getter,NULL,1);}
  }
 }
}

今回の変更点は二か所

いままではティック毎に動作させていましたが、
足変更のタイミングでの変更にしました。
1分足で動かしていますので、分が変更になってすぐ後のティック変更に反応して条件をチェックします。

もう一つは勝率を上げるためにトレンドを追加!
初期設定の場合580分前に比べ大きいか小さいかを見ています。
580分は10時間弱です。一時間足の14平均程度のイメージです。

勝率です。


8月は減少しましたが、他は上昇 合計で3%上昇しました。

もう少し伸びてほしいところですが、ブラックジャックでは3%の為にひたすらカウンティングをします。そう考えると素晴らしい結果です。

二か所の変更点で取引数、損益とも激減しています。
9月取引数165,160 ⇒ 874 純益 29,374 ⇒ 500

これを見るとなんじゃそらなのですが、ティック単位の発注では大量にポジションを持っていました。20、30は当たり前多い時には50持つことも、これでは大量ポジションの為に常にポジションを持っていなければなりません。

新しい物を一年ほどテストしました。
ポジション所有数です。

ポジションをいくつ所持するかをまとめました。
4ポジションで98.6%を占めています。
5ポジション以上持てなくして、ロットを上げたほうが面白そうです!


2016年10月12日水曜日

高精度EAの作成 RSI調査編 2016年7,8,9月比較 

前回 9月の数字で検証しました。
他の月ではどうか3カ月ほど比較してみたいと思います。
まずは利益です。
前回のEAでスプレッドは1で見ています。


利益を見て行くとやはり65、70前後がよさそうです。
しかし、月によって利益額は全く違います。
7、9月はRSILEVELが65を超えて反転したところが多く8月は70だったということでしょうか





取引数を見てみましょう。 RSIレベルを低くするほど、取引数は増加しています。
回数も月によってまちまちです。
8月、9月のRSILEVEL70の取引数をご覧ください。
8月のRSIが70以上もしくは30以下なのは139,974ティックです。
9月は165,160ティック 9月のほうが取引数が多いのに損益は8月のほうが多くあります。



そして勝率です。
RSI LEVELが高いほうが勝率は高いと考えていたのですがそうではなかったようです。
こちらも70前後が安定していいのかもしれません。

RSIだけで見ると利益、勝率共に安定して出せるのは70前後のようです。
しかしスプレッド1での実験ですので、利益は出ないでしょう。

他のインディケータとの複合にして勝率の上昇、期待利得の上昇を目指してみます。








2016年10月10日月曜日

高精度EAの作成 RSI調査編

今日は素敵な天気です。三連休どこにも行かず引きこもってMT4三昧でした。
いや、一か所だけ早川社長お勧めの「いきなりステーキ」デビューしました!
なかなかうまかった♪家から歩いて5分の所にあるのですが、ハマりそうです。そして太りそう・・・

extern int RSILevel=70;
extern double Getter=0.01;
void OnTick(){
if(iRSI(Symbol(),0,14,0,0)>RSILevel)    {int d=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,Bid+Getter,Bid-Getter,NULL,1);}
if(iRSI(Symbol(),0,14,0,0)<100-RSILevel){    d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,0,Ask-Getter,Ask+Getter,NULL,1);    }
}

こんなものを作りました。(製作時間3分)
RSIは70を超えたら買いすぎ(売りシグナル)30を切ったら売りすぎ(買いシグナル)です。
RSILevelが70の時は70/30をエントリーラインに
80にすると80/20をラインにします。

70を超える時よりも80を超える時のほうが少ないので取引数は70のほうが多くなりますが、
勝率は80のほうが上るはずです。

中期 1年ほどで利益が出るものよりも、短期1カ月単位で安定して利益が出るもののほうがニーズがありそうです。
中期物はマイナス時期が多くなりますが1~数年で見ると中期物のほうが圧倒的な利益を算出できます。
短期物は心にやさしいEAですが、こつこつと小さな利益を稼ぐ感じです。

短期物を作るには勝率を上げる事が必須です。

まずは先程のソースを最適化RSILEVELを55-95まで幅5でスプレッド1です。
反転の精度を確認したいのでスプレッド0でもいいのですが0はダメですね・・・
期間は2016年9月の一ヶ月


利益は55,60ではマイナス 反転の基準にならない値という事ですね。
一番利益があったのは65 つぎは70と増えるごとに利益は減ります。
取引数は95-55まで下がるほど多くなります。

RSILEVEL別に 期待利得と勝率をまとめてみました。
期待利得は取引一回当たりの平均利益です。RSILEVELと比例して上昇します。
勝率、売り勝率、買い勝率はグラフにしました。



このグラフの元データーの九月はUSDJPYが下がった月です。
1~8はRSILEVEL55-90です。
勝率はRSILEVELに比例して上昇しています。
買いレベルも傾向はにていますがムラがあります。
売り勝率は大きく上昇しています。
特にRSILEVEL90の時は90%を超える勝率です。

RSILEVEL90% 勝率52.83% 損益 9、510
RSILEVEL65% 勝率50.77% 損益48,987

65%のほうがよさげだな・・・
他の月も確認してみましょうか







2016年10月7日金曜日

ボリンジャーバンド

前回月別、週別のボリンジャーを見てきましたが余りにも幅が広かったので今回は1分足を見て行きます。



今回は赤が2σ
濃紺は安値、高値の4σです。

06:04分の数字を見てみると実際の最高値103.843 最安値 103.791
予想値は103.863-103.744です。
なかなかの精度です。

ボリンジャーバンド(以下BB)の拡大期は平均方向へのトレンド、
BB収縮期にはこの幅でのオシレートエントリーは有効かもしれませんね。

ボラティリティの探求!

市場活性の強さ、価格の変動率をボラティリティと言います。
狭義では標準偏差、広義ではADXやCCIなどもそこに含まれます。

市場活性の強い時はトレーリングは強大な力を発揮します。
逆の時は振り子のような動きをしますので固定TPやSLで刻むほうが利益が出しやすくなります。
固定と言っても毎回同じではなく相場に合わせて変動する意味合いです。

そこでボラティリティをしっかり見てみたいと思います。
FXDDデーターのマンスリーチャートです。
ろうそく一本が一月ですね。
因みに京都タワーは京ろうそくの形です。

ボリンジャーバンドのσ2を赤、σ3が薄緑、σ4が濃紺です。
平均から±σ(標準偏差)したのが1σ、±σ×2が2σ・・・です。
σの幅に入る確率は計算上68.26%
2σ95.44% 3σ99.74% 4σ99.994%

つまり4σの幅に収まらない率は10万ヵ月に6回です。



画像が小さくて見にくいのですが、4σを超えているところはありません。
真ん中は平均線ですが、平均線より下にいる時には逆の2σは超えません。
つまり9月の場合82.781-128.088の間にいることが予想されます
実際は100.081-104.321でした。
すばらしい発見です!!45円も幅があればだれでも当たると声が聞こえてきそうですが・・・
ウィークリーで見てみましょう!



一回σ4を下回っています。10万週に6回が起こったのでしょうか。
ボリンジャーバンドは終値で平均を算出し、標準偏差を計算するので一時的な膨らみは計算に入れません。ここがボリンジャーの大きな問題なのですが・・・


ボリンジャーバンドの計算を終値から最安値にしたところ下は超えません。
幅を取ろうとする時には下は最安値、上は最高値で計算したボリンジャーで見ないと幅は判らないようです。

先週を見てみます。
平均を下から上に突き抜けており平均も上下感が無いのでどちらの傾向かわかりません。
(今夜の雇用統計での円安で上昇が決定づけられると思いますが楽しみです)
最高値の4σ110.988最安値の4σ95.550の間との予想です。
実際は101.838-100.081 当たっています!!しかしまだ幅が15円

ん?ボラティリティーの探求のはずがボリンジャーバンドの探求になっている・・・・・・

ここまでをまとめます。

ボリンジャーバンドは4σを超えない(下は安値、上は高値)
傾向が決まっっている時には逆の終値2σは超えない

終値だけでボリンジャーバンドを見ていると腑に落ちないことがありますが、
きっちり安値、高値にすると納得のいく結果になりますね。









2016年10月6日木曜日

OANDA JAPAN FX 日本サーバー探求

OANDAベーシックのEA自動発注ができなくなるので、ブローカーコースを探しています。

各社のスプレッド、スワップ、ストップレベル いわえる3Sを調べています。

OANDA JAPAN FXです。
 
ベーシックコースでは10万通貨(USDJPYで40万円くらい)が上限でしたので分割発注をしていましたがJAPAN FXは100万通貨(5k は50万通貨)まで発注できます。
50万通貨でも200万円 これなら分割する必要はありませんね。

さらにAUD/JPY GBP/JPY AUD/USDはスプレッドがベーシック以下です。

そして興味深いのが二重価格 1mと5kの二つの価格が動いています。



左の通貨ペアをご覧ください。
USDJPY.oj1mとUSDJPY.oj5k と二つあります。(ない人は通貨ペア右クリックセットだったかな)

それぞれが、別々にレート配信をしているので写真のようにずれます。


こんなソースを作ってみました。

void OnTick()
{Comment(iClose("USDJPY.oj1m",0,0),"\n",iClose("USDJPY.oj5k",0,0),"\n",Close[0]);}

右のコメントです。1Mと5Mとチャートの価格(今回は1M)を表示しています。
この場合ですとSELLは5mで発注したほうが得ですね^^

左のAUDUSDはBiD,Askともに1ずれています。むふふです。

再程のソースのUSDJPYをAUDUSDに変えてUSDAUDのチャートで動かしてみます。

気配値表示のAUDUSD.0j1mは0.75994 コメント表示は0.7599 一桁足りません。
おなじく5kは気配値0.75995に対し 表示は0.76

見た感じではコメント表示はかなり遅れて動作していました。
小数5桁そろっての表示は見えませんでしたので適当な桁数で四捨五入するようです。

EAが取得する値は右の表示になりますので、少し問題ですね。

AUDJPYは面白そうです!
AUDUSDは難あり。










2016年10月5日水曜日

【大疑問】フォワードテストはどうなるのでしょうか!

最近いろいろな人のコミュニティを覗いています。
その中で、フォワードテストと結果が違うといった書き込みをよく拝見いたします。
私の方ところにも時々あります。
まあ、わざわざフォワードに最適化したEAを出品する人もいないと思うのですが・・・

フォワードのブローカーはOANDAデモコースを使っている人が大多数です。
OANDA社デモコースのUSDJPYのスプレッドはベーシックコースに合わせて0.4なのでしょう。


わたしのEA開発でOANDA社ベーシックコースをチョイスした理由の一つがここにあります。
フォワードテストと同じブローカー、条件を使いたい。
そうすれば、購入者が正確な数字を見て判断できる。
(すこしずれることはありますが、一番類似しているのは確かです。)

ベーシックコースのEA自動売買ができなくなった後もスプレッドの変更予定は無いようです。
スプレッド0.4のままですと実際に使えるプロコースとは手数料に倍の差ができます。そうプロコースのスプレッドは0.8です。
(JAPAN FXは変動でサーバーも異なります。)

OANDA社デモコースでのフォワード試験は現実離れしたものになってしまいます。

逆に考えると日本のMT4はOANDA社に支えられてきたという事ですね。


大疑問 これからフォワードテストはどうすればいいのかな・・・












OANDAベーシック自動売買中止への対応!!!

OANDA社のしかるべき人からお電話を頂きました。

ベーシックコースのEA使用中止についてはこうゆう事のようです。
①MT4やEAは今まで通りつかえる。
②できなくなるのは自動売買!

自動売買のできないEAなんて、○○のない●●ですね。
(●●〇〇は想像にお任せします。)

インディケーターもしくはシグナル配信(画面に買う時ですよ、売り時ですよと表示)は可能のようです。

現在販売中のEAはこれからの購入ができないように一時販売中止にします。
私が納得できる対策ができれば販売再開します。
ご購入頂いたEAは今まで通り使用できます。
販売中止の間でもFX-ONの画面は見れます。

各対応策を以下のようにします。
AMSER FXTF、OANDA PROでは今まで通り使えます。
OANDA BASICでの使用(あまりいないかな?)に対してはシグナル配信ができるようにアップデートします。
シグナルごとの分割エントリーの試験は間に合いませんので、今回は見合わせます。
ごめんなさい。

ALCHEMY PC環境に依存して成績が変わります。PC環境速度設定を追加します。プロコースでの使用ができます。

EDELWEISS こちら のアップデートに加え シグナル配信を追加します。

ZEVEN こちら のアップデートを申請中でしたが、シグナル配信を追加して再度アップします。

SIGMA4 トレーリングの変更、発注上限の廃止、週末決済時間の設定。シグナル配信の追加
逆シグナル発生時のいわえるドテンモード依頼がございましたが、今回は見合わせます。ごめんなさい。

本日中に作成アップを目指しております。
FX-ON社でのアップが一週間程度であれば、10/31には間に合うかと思います。



時代の移り変わりと共にブローカー各社に様々な動きがあります。
しかしながら、安定した環境の提供をお願いしたいと強く思うところであります!!




みんなで儲かりますように!
これが終わったらまたEA作ります!










2016年10月4日火曜日

OANDA ベーシックコースEAの使用中止について

バタバタしておりましたがやっと忙しさが緩和されEA作成に集中できる環境となりました。

そんななか突然のメールが来ました。

OANDAベーシックコースでのEAの使用が中止になる様です。

現在発売しているEAはすべてOANDAベーシックでの使用を前提として作られているものです。

もちろんプロコースへの移動等で、各ブローカーに対応したものもございます。

このOANDAベーシックコースでのEA使用中止は全く驚きでした。

販売しているEA」につきましてはOANDA ベーシックコースでのみ利益が出るものが多くあります。

つきましては各所と相談、検討をし販売しているもので改良が不可能なものは販売中止、

改良できるものについては改良アップデートを検討いたします。

私としましては突然の発表にただただ驚いているところでございます。

願わくば、引き続きOANDA社ベーシックコースでのEAの仕様を継続していただきたいところでございます。

なお、前回OANDA社でのプロコースへの移動に対しては全力で対応いたしました。

今回のベーシックコースでのEA使用不可につきましても同様の対応をする所存でございますが、

OANDA社決定についてはこちらで対応不可能な部分もございます。

ご理解いただければ幸いです。

また、ベーシックコースでのEA使用云々に関しましてはOANDA社にお問い合わせいただければと思います。

何分ブローカーの決定で当方ではコントロールできないところをご理解いただければ幸いです。

また、ブローカー対応のアップデートに関しまして、ご要望などございましたらご連絡ただければ幸いです。

連絡先:bigtaca@gmail.com

なおfx-onのサイトにつきましては連続でメッセージが続くとこちらで見えないこと気が付かない事が多くありますので、メールを頂ければ幸いです。


TACA