XMはビットコインの証拠金取引ができます。
海外FXのXMでは、ビットコインをはじめ
ライトコインやイーサリウム、リップルなど
仮想通貨を証拠金取引可能です。
必要な証拠金は20%なのでビットコインであれば
1BitCoinあたり15万円くらいの証拠金でOK。
0.1BitCoinから取引可能なので15000円あれば
ドル円などの通貨FX同様、売買差益を狙えます。
これまでMT4を利用して自動売買プログラムを作成し
バックテスト機能を用いて検証を行ってきたのですが
ビットコインを含めた仮想通貨はMT5でしか
取り扱いがありません。
そこで自動売買プログラムに必要なMT5用の
インジケータをネットで探したのですが
なかなか見つけられなかったので作成しました。
一つ目のインジケータとしてマーフィー氏の
有名なスパンモデルをMT5インジケータとして
作成してみました。
MT5 スパンモデル インジケータ
インジケータのコード
下記コードをコピーしてMetaEditorに
貼り付けてご利用ください。
ちなみに素人作成なので不具合が生じても
当サイトは責任を取りかねます。
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
// プリプロセッサ命令(プログラム全体の設定) #property indicator_chart_window #property indicator_buffers 7 #property indicator_plots 6 #property indicator_type3 DRAW_LINE #property indicator_type4 DRAW_LINE #property indicator_type5 DRAW_LINE #property indicator_type6 DRAW_FILLING #property indicator_color3 clrBlue #property indicator_color4 clrRed #property indicator_color5 clrNONE #property indicator_color6 clrBlue, clrRed // 指標バッファ用の配列の宣言 double Tenkan_Buffer[]; // 転換線 double Kijun_Buffer[]; // 基準線 double SpanA_Buffer[]; // SpanAライン double SpanB_Buffer[]; // SpanBライン double Chikou_Buffer[]; // 遅行線 double SpanA2_Buffer[]; // ヒストグラムA2 double SpanB2_Buffer[]; // ヒストグラムB2 // 外部パラメータ input int Tenkan = 9; // 転換線の期間 input int Kijun = 26; // 基準線の期間 input int Senkou = 52; // 先行期間 int a_begin; // 初期化関数 int OnInit() { // 指標バッファの割り当て //---- SetIndexBuffer(0, Tenkan_Buffer, INDICATOR_CALCULATIONS); PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, Tenkan-1); PlotIndexSetString(0, PLOT_LABEL, "Tenkan"); //---- SetIndexBuffer(1, Kijun_Buffer, INDICATOR_CALCULATIONS); PlotIndexSetInteger(1, PLOT_DRAW_BEGIN, Kijun-1); PlotIndexSetString(1, PLOT_LABEL, "Kijun"); //---- a_begin=Kijun; if(a_begin<Tenkan) a_begin=Tenkan; SetIndexBuffer(2, SpanA_Buffer, INDICATOR_DATA); PlotIndexSetInteger(2, PLOT_DRAW_BEGIN, Kijun+a_begin-1); PlotIndexSetInteger(2, PLOT_SHIFT, Kijun-26); PlotIndexSetString(2, PLOT_LABEL, "Senkou Span A"); SetIndexBuffer(5, SpanA2_Buffer, INDICATOR_DATA); PlotIndexSetInteger(5, PLOT_DRAW_BEGIN, Kijun+a_begin-1); PlotIndexSetInteger(5, PLOT_SHIFT, Kijun-26); PlotIndexSetString(5, PLOT_LABEL, NULL); //---- SetIndexBuffer(3, SpanB_Buffer, INDICATOR_DATA); PlotIndexSetInteger(3, PLOT_DRAW_BEGIN, Kijun+Senkou-1); PlotIndexSetInteger(3, PLOT_SHIFT, Kijun-26); PlotIndexSetString(3, PLOT_LABEL, "Senkou Span B"); SetIndexBuffer(6, SpanB2_Buffer, INDICATOR_DATA); PlotIndexSetInteger(6, PLOT_DRAW_BEGIN, Kijun+Senkou-1); PlotIndexSetInteger(6, PLOT_SHIFT, Kijun-26); PlotIndexSetString(6, PLOT_LABEL, NULL); //---- SetIndexBuffer(4, Chikou_Buffer, INDICATOR_DATA); PlotIndexSetInteger(4, PLOT_SHIFT, -Kijun+1); PlotIndexSetString(4, PLOT_LABEL, "Chikou Span"); //---- ArraySetAsSeries(Tenkan_Buffer, true); ArraySetAsSeries(Kijun_Buffer, true); ArraySetAsSeries(SpanA_Buffer, true); ArraySetAsSeries(SpanB_Buffer, true); ArraySetAsSeries(Chikou_Buffer, true); ArraySetAsSeries(SpanA2_Buffer, true); ArraySetAsSeries(SpanB2_Buffer, true); return(0); } // 指標計算関数 int OnCalculate(const int rates_total, const int prev_calculated, const datetime& Time[], const double& Open[], const double& High[], const double& Low[], const double& Close[], const long& Tick_volume[], const long& Volume[], const int& Spread[]) { // 変数の定義 int i,k; int counted_bars=prev_calculated, bars=rates_total; double high,low,price; // 時間並びの変更 ArraySetAsSeries(High, true); ArraySetAsSeries(Low, true); ArraySetAsSeries(Close, true); //---- if(bars<=Tenkan || bars<=Kijun || bars<=Senkou) return(0); //---- 初期化 if(counted_bars<1) { for(i=1;i<=Tenkan;i++) Tenkan_Buffer[bars-i]=0; for(i=1;i<=Kijun;i++) Kijun_Buffer[bars-i]=0; for(i=1;i<=a_begin;i++) { SpanA_Buffer[bars-i]=0; SpanA2_Buffer[bars-i]=0; } for(i=1;i<=Senkou;i++) { Tenkan_Buffer[bars-i]=0; SpanB2_Buffer[bars-i]=0; } } //---- Tenkan Sen i=bars-Tenkan; if(counted_bars>Tenkan) i=bars-counted_bars-1; while(i>=0) { high=High[i]; low=Low[i]; k=i-1+Tenkan; while(k>=i) { price=High[k]; if(high<price) high=price; price=Low[k]; if(low>price) low=price; k--; } Tenkan_Buffer[i]=(high+low)/2; i--; } //---- Kijun Sen i=bars-Kijun; if(counted_bars>Kijun) i=bars-counted_bars-1; while(i>=0) { high=High[i]; low=Low[i]; k=i-1+Kijun; while(k>=i) { price=High[k]; if(high<price) high=price; price=Low[k]; if(low>price) low=price; k--; } Kijun_Buffer[i]=(high+low)/2; i--; } //---- Senkou Span A i=bars-a_begin+1; if(counted_bars>a_begin-1) i=bars-counted_bars-1; while(i>=0) { price=(Kijun_Buffer[i]+Tenkan_Buffer[i])/2; SpanA_Buffer[i]=price; SpanA2_Buffer[i]=price; i--; } //---- Senkou Span B i=bars-Senkou; if(counted_bars>Senkou) i=bars-counted_bars-1; while(i>=0) { high=High[i]; low=Low[i]; k=i-1+Senkou; while(k>=i) { price=High[k]; if(high<price) high=price; price=Low[k]; if(low>price) low=price; k--; } price=(high+low)/2; SpanB_Buffer[i]=price; SpanB2_Buffer[i]=price; i--; } //---- Chikou Span i=bars-1; if(counted_bars>1) i=bars-counted_bars-1; while(i>=0) { Chikou_Buffer[i]=Close[i]; i--; } //---- return(rates_total); } |
コード内容の説明
ビットコイン1時間足とスパンモデルの相性がGood
スパンモデルは一目均衡表を少し変換したものです。
基本的な考えは雲の転換がトレンドの転換を
表しているとのもの。
赤 ⇒ 青 : 買いトレンド
青 ⇒ 赤 : 売りトレンド
ですが、100%ではありません。
これを自動売買に組み込むと勝てそうに感じますが
レンジ相場では負け続けます。
しかし、現在ビットコインを含め仮想通貨は
空前の買いトレンド状態です。
レンジではありません。
赤から青への買いトレンド転換だけを狙い
買いだけで入れば勝率は上がりますよ。
ちなみに5分足などの短期足でも
それなりに効果的ですよ。
仮想通貨取引を始めるなら今でしょ
現在、仮想通貨を証拠金取引できるのは
海外FXのXMだけです。
ビットコインはシカゴ証券取引所で
先物取引に上場されることを受けて
先週だけで5500ドルから8000ドルまで
急騰しました。
実に30%以上の上昇です。
さらにリップルはクレジットカードの
アメックスの決済システムに取り入れられるとの
報道から1時間で25%上昇しました。
通貨FXではこれほどの急騰はあり得ません。
この動きの大きさと買い方向への優位性が
仮想通貨売買の魅力です。
さらに仮想通貨を初期から持ち続けている人は
現金化による税金払いを嫌気して保有を続けています。
つまり、売り手が少ないので値が下がりにくいです。
ビットコイン取引に必要な証拠金は?
ビットコインを含め仮想通貨の取引に
必要な証拠金は以下のページにまとめました。
まとめ
海外FXのXMはビットコインなどの
仮想通貨を証拠金取引できます。
しかしプラットフォームはMT4ではなく
MT5です。
MT5はMT4とは異なる別の言語MQL5を使用しているので
MT4で使えたMQL4のインジケータが利用できません。
そこでMQL5でインジケータを書き直しました。
今回紹介したのはスパンモデルです。
スパンモデルとビットコインは相性が良く
現在の買いトレンド相場でかなり効果的ですよ。