前回、くるくるワイドのEA化できないかということでver2です。
くるくるワイドEA作成計画
今回はくるくるワイドEAというよりは補助ツールです。
主な機能
・稼働と同時に本体を建てる
・ヘッジトレードを行う
・ヘッジトレードを行うかをオンオフで切り替える
・トラップを貼る
ヘッジトレードのみにした理由は自動化するとトラップ幅を変えたときのトラップの利益がうまく保存できず、細かい調整ができなくなるからです。
ヘッジトレードのみを自動化したのは仕事などでチャートを見る余裕がないときにトレードしてくれ、ヘッジトレードなら10pips抜きを狙うだけだからです。
仕事が終わって家に帰ったらヘッジトレードをオフにして手動でヘッジトレードをすることもできるように作成しました。
本体が売り、トラップが買いトラップの場合のヘッジトレードのロジック
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
//ヘッジトレード if(HEDGEALLOWFLG){ //ヘッジポジションをもっているかチェック for(int i = 0; i < OrdersTotal(); i++){ //インデックスを使用して注文を選択する if(OrderSelect(i, SELECT_BY_POS) == true){ //本体ポジションの場合 if(OrderMagicNumber() == MAGIC_HONTAI){ HEDGEFLG = false; for(int j = 0; j < OrdersTotal(); j++){ if(OrderSelect(j, SELECT_BY_POS) == true){ //ヘッジポジションを保有している場合フラグを立てる if(OrderMagicNumber() == MAGIC_HEDGE){ HEDGEFLG = true; break; } } } if(HEDGEFLG){ break; } } } } //ヘッジポジションを立てていない場合 double Boli2Up1 = iBands(NULL,0,21,2,0,PRICE_CLOSE,MODE_UPPER,1); if(!HEDGEFLG){ //(出口時の本体益-出口時のトラップ損)÷(出口のレート-現レート) if(URITOP - 0.1 > Bid){ hedgeposition = NormalizeDouble(((URITOP * HONTAILOTS - HONTAI_RATE * HONTAILOTS) - (URITOP * HONTAILOTS - HONTAI_RATE * HONTAILOTS)/2)/(URITOP - Ask),2); //ヘッジポジションが持てる場合 if(hedgeposition > lowestLots){ if(HEDGEBOOST){ HEDGETP = Bid - 0.1; HEDGEFLG = true; int ticket = OrderSend(Symbol(),OP_SELL,hedgeposition,Bid,SLIPPAGE,URITOP,HEDGETP,"ヘッジ",MAGIC_HEDGE,0,Green); } else{ if((High[1] >= Boli2Up1)){ HEDGETP = Bid - 0.1; HEDGEFLG = true; int ticket = OrderSend(Symbol(),OP_SELL,hedgeposition,Bid,SLIPPAGE,URITOP,HEDGETP,"ヘッジ",MAGIC_HEDGE,0,Green); } } } } } } |