とある技術者のSolid State SystemTrade

FXのための自動売買プログラミングなど。プログラミングコード部分などが壊れていたらごめんなさい。 トレードプログラミング

第20回:複数のポジションを識別・判別する

口座内の異なる通貨ペア、マジックナンバーのポジションを区別する

MT4では同時に異なる種類のポジションを持つことができます。

それゆえに決済の際にはどのポジションに対する条件なのかを明確にしないと、
ドル円でとったポジションをユーロドルの条件で決済してしまう、
なんてことになります。

これまでに使ったOrderSelect, for文を使ってポジションを区別します。

上記は現在もっているポジションの通貨ペアとマジックナンバーでポジションを識別します。

一度PositionAmountという変数にポジション数を入れます。直接

と書いてしまうと、
for文で繰り返し処理をしている最中にOrdersTotal()の数が変わってしまうことがあり、バグの原因となります。

これはもっているポジションの数だけ下の判別処理をすることを表します。OrderSelectが0から始まるので、int iも0から宣言します。

オーダーを選択し、
それぞれの情報がマッチするかを調べます。

オーダーを送信する際にマジックナンバーを固定にせず変数に格納しておけば、
1234ではなくその変数名で条件に組み込むことができて便利です。

決算処理についてはこれでほぼ完成です。

第19回:for文で回す

MQLのfor文

プログラミングでは同じような処理を何回もしなければならないことがあります。

例えば前回のような

の処理が100や1000などになると記述も変更も大変です。

for文は上記のような処理をまとめることができます。
まずは上記の処理をfor文に書き換えてみます。

上記のように書くと、
6の数字を10000とするだけで10000ティック分のデータを格納できます。

とはiという変数を宣言し、1を代入するという意味です。

はiが6未満の場合は以下の処理を実行するという意味になり、

実行した場合はiを1増やすという意味になります。

つまりこのfor文の中でだけ使うiという変数を宣言し1を代入して、
6になるまで処理を繰り返せ、ということになります。

その下の、

は、iが1のときは

とり、
iが2のときは、

という風になります。

第21回:パラメータ設定で変更できる数値を作る

パラメータ変数の作り方

EAはMT4側で設定できるようにした方がユーザーフレンドリーです。

また、MT4で数値を変更できるようにすることで
数値最適化を行うことができます。

今回はこれまでに宣言した変数をパラメータ化し、
MT4で編集できるようにします。

パラメータ化は非常に簡単で、

でできます。
例えば、今までの日本時間の修正機能を

から

にすることでAddJapanHourはパラメータ化されます。
ここで代入した値はパラメータ設定のデフォルト値になります。

パラメータ化すると下記のようにMT4で設定できます。

extern_sample

これまでに作ったコードの
マジックナンバーやスリッページ、ロット
などもパラメータで変更できるようにしましょう。

第22回:チャート上にデータを表示させる

MT4のチャート上にデータを表示させる

Comment()という関数を使うとビジュアルモードのバックテストの際や、
ライブトレードの際にチャート上にコメントを表示させることができます。

例えば、

と書けば、

comment_Sample_1

のように左上にテキストが表示されます。

これを使えば簡単なデバッグ(プログラムが正しく動いているか確認)することができます。

※MT4には他にもPrint()というエキスパートタブ、操作履歴にテキストを残す関数もありますが、
こちらはログがすぐに消えてしまったり、
処理が遅かったりすのであまり推奨しません。

テキスト同士は+でつなぐことができ、また、+”\n”+を入れることで改行することができます。

とすれば、

comment_Sample_2

のように改行されます。

チャート上に口座情報を表示させる
口座の情報を表示する関数とComment関数を使えば、下記のように口座情報を表示させられます。

comment_Sample_3

第23回:短時間に大量のポジションを取るリスクを排除する

ポジションの時間を制御する

EAプログラミングでは思わぬバグがつきものです。
よくあることとしては短時間の間に大量にポジションをとってしまうことなどが挙げられます。

position_margin_1

今回は短い時間に大量のエントリーと決済を繰り返させない方法の一つとして、
「前のエントリーから次のエントリーまでの時間」
を制限します。

本来は最後の決済時間から次のエントリーまでの時間を制御した方が良いのですが、
成行決済ではなく予約注文で決済した場合にはその決済した瞬間を認識させる記述が別途必要になります。

今回は簡略化のため制御しやすいエントリーのタイミングを記録します。

これまではエントリーの条件が整ったらエントリーしてお仕舞いでしたが、
エントリー後に下記のようにあらかじめ宣言しておいた
LastOrderOpenTimeという変数にエントリー時刻を格納します。



これでオーダーが送信され新規ポジションを取得すると、
LastOrderOpenTimeにその時刻が格納されます。

後はこれをフィルター化してエントリー条件に再度組み込みます。

書き方はいろいろありますが、
ここでは
「最後のエントリーから5本分のロウソク足の経過をしないとエントリーを許可しない」
という条件にします。

上記のフィルターをエントリー条件前に記述すると
下記のように少しエントリーが落ち着きます。

position_margin_filter

エントリー間の時間制御はあくまでトレードルールに穴があった場合の安全装置です。

短時間の大量にポジションを取ると
たとえすぐに決済してもスプレッド分の手数料がどんどん口座から減ってしまいます。

時間制御をしてもエントリー頻度が高い場合にはトレードルールそのものに条件不足の可能性があります。

下記が今回のコードです。

第24回:iCustomでインジケータをEA化する

インジケータとiCustom

今回はインジケーターのシグナルを使って、EAを作ります。

iCustomという関数を使うと
インジケータをEAのロジックに組み込むことができるようになります。

ただし
すべてのインジケータがiCustomでデータを取得できるわけではありません。

チャート上にセットしたインジケータのラインや矢印にマウスをのせて、
Value1やValue2などという表示がでれば、まず、EAに組み込めます。

(表示が出なくても、チャート上の表記をEAにそのまま組み込むという荒業もあります。)

iCustomは

という記述で扱うことができます。

インジケータ名の後にはそのインジケータのパラメータを複数渡すことができます。

バッファというのは
そのインジケータが返す値の種類のことです。

この数値を変えると
そのインジケータの上矢印の値や下矢印の値などをそれぞれ取得できます。

シフトは欲しい値のロウソク足の場所です。
0なら現在のロウソク足、1なら一本前のロウソク足になります。

ZigZagインジケータ

今回はMT4に標準搭載されているZIGZAGというインジケータを扱います。

デフォルトでインジケータフォルダにセットされているので
ダウンロードしたりする必要はありません。

ZigZagは以下のようなジグザグ線を描くインジケータです。

icustom_zigzag_sample

ZigZagはそのロウソク足が頂点になったときに
バッファ0と1と2が値を返します。

今回は
3つ前のロウソク足が頂点になった際にエントリーするロジックを考えます。

ZigZagの下向き頂点で買いエントリー、上向き頂点で売りエントリー

これまでに作ったコードをベースにZigZagのEAを作ります。
3つ前のロウソク足でのZigZagは

として記述できます。

頂点でないときには上の値が0になり、
頂点になった場合にはそのときの高値or安値のレートが返ります。

そのため、
3本前のロウソク足が上向きの頂点になったときは、

とすれば良さそうですが、
上記では小数点以下での一致が曖昧となるので、
少数を3桁にまとめる関数を使います。

で数の小数点をそろえることができます。
その通貨ペアの最小桁数を表すDigitsを使います。

上記の条件式の少数点以下をそろえると、

となります。
逆の場合は、HighをLosに変えて

となります。

以上を元にEAのコードをまとめると、以下のようになります。


上記のコードのテスト結果は以下のようになります。

icustom_zigzag_tester

ZigZagはリペイント(再描写)を行うので、
EAでエントリーしたときの様子と後から見た様子がかなり変わります。

このような後出しインジケータは多く、
インジケータをEA化する際にはこのような点にも注意しなければなりません。

特に注意しなければならない特徴は、
・最新のロウソク足ではなく、数本前のロウソク足にシグナルを表示させるインジケータ
・一度描写したシグナルを消すインジケータ
・一度描写したシグナルを変更するインジケータ
・セットしたタイミングによって描写が変わるインジケータ
などがあります。

海外FXの重要な3つの魅力

海外FXの重要な3つの魅力

海外FXの大きな魅力となっているのは「ハイレバレッジ」 「ゼロカット」 「ボーナス」の3点。これらを活用することで、効率的に資金を使うことができ、柔軟かつ安全なトレードが可能になります。

ハイレバレッジの本当の意味

ハイレバレッジというと「たくさんポジションが持てる=ハイリスク」ととらえる人が多いですが、必ずしもそうではありません。

レバレッジが高いと(またロスカットレベルが低いと)、より多くの含み損を抱えても強制ロスカットされずにポジションを持ち続けることができます。つまり、自分のやりたいトレードがシステムによって中断されることが、ギリギリまでなくなるわけですから、収益チャンスは大きくなるというわけですね。

例えばハイレバレッジな海外FX業者であれば、仮に国内FX業者の10倍のポジションを持ったとしても、その許容できる最大の損失額は国内FX業者よりも大きくなります。それにより証拠金を効率的かつ柔軟に使うことができ、さらに儲けられる可能性も10倍以上大きくなるということですね。

もちろん収益性の高さは言うまでもありません。例えばメジャーな海外FX業者XMでは888倍という非常に高いレバレッジを採用しています。その場合、ドル円をわかりやすく1ドル100円で計算すれば、1lot=10万通貨=10,000,000円のポジションを取るのに必要な証拠金は、わずか11,260円程度。これはリスクを最小限に抑えつつ、少額資金でも多額の儲けを出すことができることを意味します。

 

ゼロカットの真価

ゼロカットというのは、仮に強制ロスカットによって口座残高がマイナスになったとしても追証(ロスカット未収金)が発生しないという制度のことです。

国内業者は、口座残高がマイナスになると追証を業者に支払わなければならない、というリスクがありますが、海外FXの場合には仮に残高がマイナスになった場合でも、すぐにゼロにリセットされます。

つまり、海外FXの損失は最大でも入金額までに抑えることができるということになり、そういう意味ではリスクが低いと言えますね。

 

ボーナスの有効活用方法

海外FXでは、口座を開設したり入金したりするとボーナスをもらえることがあります。

このボーナスというのは基本的に出金することはできませんが、トレード用の証拠金として利用することができるクレジットとなります。つまり入金額以上の証拠金を保有した状態でトレードをすることが可能になるというわけですね。

ハイレバレッジ&低いロスカットレベルと組み合わせれば、より大きな取引で稼いだり、ロスカットの危険性を下げることができ、さらにトレードの幅が広がるということになります。

 

海外FX会社一覧

レビュー評価で選ぶおすすめ海外FX会社(MT4)

レビュー評価で選ぶFX会社

海外の大手FX会社レビュー評価サイトFPA(https://www.forexpeacearmy.com)基準です。海外目線なので、日本語対応などは度外視です。大抵は”出金がちゃんとできるか”、”レート操作してないか”、”スプレッドが狭いか”などを基準にした評価です。

HotForex(ホットフォレックス)

レバレッジ:最大1000倍

スプレッド:最小0pips~

プラットフォーム:MT4,MT5,API

取引対象:FX、金属ガス、インデックス、株式、商品、仮想通貨、債券

入出金方法:カード、bitwallet、(bitpay)

言語:日本語、英語

ホワイトラベルなんかもやっているFX会社です。APIの提供もありますが、200,000USDが最小なので、現実的ではありません。(ファンドならいいかもしれないですけど)

入出金方法に銀行送金がないのがちょっと心配です。

仮想通貨はBTC,DSH,ETH,LTC,XRPが取引可能です。

債券(外国債)がトレードできるというユニークな点もあります。

公式HP

HotForexについてもっと詳しく知りたい方はこちら


AXIORY(アキシオリー)


AXIORY

レバレッジ:最大400倍

スプレッド:最小0.9pips

プラットフォーム:MT4,cTrader

取引対象:FX,CFD

入出金方法:カード、銀行送金、SticPay, bitpay, Neteller, Skrill

言語:日本語

仮想通貨のトレードはできませんが、ビットコインの入出金ができます。

入出金方法は入れ替わりが激しいです。bitWalletには怒られて取引を停止させられました。一回炎上しかけたことがあったのですが、対応が凄すぎて逆に評判が良くなった稀有な事例があります。

レバレッジ、スプレッドがそこそこの水準ありつつ、ビットコインの入金、出金どちらもできるというのが意外と他にない特徴だと思います。

スプレッドとは別に手数料を取るタイプの口座の場合、スプレッドは0.1pipsから。

日本語対応でレスポンスも早いですが、ちょっとでもパターンにない問い合わせが来ると担当者の理解力がなさすぎて二転三転するかもしれません。

ベリーズ国際金融サービス委員会(IFSC)の許認可. office 35 New Road Belize City Belize(ベリーズ(国))/ 88 Agias Fylaxeos, 3025 Limassol Cyprus(キプロス)

公式HP

Axioryについてもっと詳しく知りたい方はこちら


xtb

xtb

公式HP

レバレッジ:最大200倍

スプレッド:最小2.8pips

追証なし

プラットフォーム:MT4 FX,CFD

言語:English

影が薄い、印象にあまり残っていないFX業者です。正直、あまり情報がありません。xStationとMT4が利用可能.一口座につき50,000GBPまで保証対象. 1ロットあたり€3.2のキャッシュバックがある珍しいブローカーです。 英国の金融監督機関に登録(FRN 522157).bloombergに記載あり


TitanFX(タイタンFX)

titanfx

レバレッジ:最大500倍

スプレッド:最小0.1pips

プラットフォーム:MT4

取引対象:FX,CFD

入出金方法:カード、bitwallet、Neteller、Skrill

言語:日本語

ここ数年で台頭してきたブローカーです。日本語対応しているのでとっつきやすいと思います。

仮想通貨の入出金はできますが、トレードはまだできません。

FXのレバレッジとスプレッドはともに最高クラスなので、FXに特化してトレードしたい人には一番良いです。

SignalTrader, ZuluTradeのプラットフォームもあります。(MT5は非対応)

公式HPはこちら

TitanFXについてもっと詳しく知りたい方はこちら


XM(エックスエム)xm

レバレッジ:最大888

スプレッド:最小0.1pips(自称) 0.5pips(実際)

プラットフォーム:MT4,MT5(hedge)

取引対象:FX,CFD

入出金方法:カード、銀行送金、SticPay

言語:日本語

ゼロカットありの有名どころです。極小ブローカーを除けば今現在一番レバレッジが高いブローカーです。ゼロカットと併用してムチャなトレードも実験できます。

スプレッドは、スタンダード口座の場合USDJPY:1.6pipsで、XM ZEROの場合はUSDJPYで0.1pipsです。

金とかインデックスとかはトレードできるんですけど、仮想通貨はまだトレードできないんですよね。

ウェビナーなども充実しており、設立当初の怪しい感じはだいぶなくなったと思います。Xe Market = XM = Trading Pointです。正式名がXe Marketで、略称がXMで、親会社(MT4の表示名)がTrading Pointです。

トレーダーの居住地によってサーバーのロケーションを多数用意したり、会社を複数に分けて各国の法的規制にギリギリ触れないようにしているところは優秀な経営陣がいるような気がします。
キプロス及びニュージーランドに登記. キプロス証券取引委員会の認可。

公式HP

XMについてもっと詳しく知りたい方はこちら

FX会社全体を比較したい方はこちら

【海外FX】IronFX(アイロンFX)の特徴、レビュー、評判 徹底比較(おすすめMT4)

IronFXは前々から薄っすらと耳にするブローカーです。もうそこそこ長いんじゃないかな。

この業界では大手のFX会社でも日本語がおかしいことはよくあるので、日本語がおかしい=胡散臭いというイメージは一回置いておきましょう。


IronFXのスプレッドは?

IronFXは口座の種類が10以上あるので、アカウントタイプによってUSDJPY:0pips~のスプレッドです。

が、何せ口座タイプが多いので実際に開設するまではいくつかは不明です。

固定スプレッド口座でも時間帯によっては広がるので、EAを使う場合は一応フィルターが必要です。


IronFXのレバレッジは?

最大1000倍です。一番小さい口座でも200倍です。1000倍なんて今時珍しいですね。


IronFXの取引対象は?

残念ながら仮想通貨はありません。(入出金は可能です)

為替、金銀、商品、インデックス、株式CFDがトレード可能です。


IronFXのプラットフォームは?

基本的にはMT4です。ブラウザ上のやつもありますが、MT4があるならMT4を使うと思います。マルチアカウントマネージャというのはMT4をまとめて管理できるツールです。普通は採用していても前面に出さないでこっそり渡すものですが、IronFXでは宣伝に使っています。

このサイトではMT4/MT5で稼働する自動売買ソフト(EA)を数量限定ですが無料で提供しています。

無料プレゼント企画はこちら


IronFXの入出金方法は?

入出金は、カード、銀行送金、bitwallet、 Perfect Money、仮想通貨が使えます。bitwalletがあれば同じような気もしますけどね。逆に銀行送金は対応していません。

出金の際にはデビットカードが使えます。

電子決済サービスの まとめ はこちら


IronFX デビットカード

IronFXカードはMasterCard(EUR or USD)か銀聯カード(USD)です。申し込み条件は、預金合計がUSD2500以上です。

ATMの引き出し上限は1,000USD x 5= 5,000USD/日

もしくは、6,000USD x 50=300,000USD/月です。


IronFXのサーバーの場所は?

サーバーの場所はアービトラージや超高速トレードをする方だけ気にしてください。

IronFXのサーバーの数はかなり多いです。XMやFXOPEN並みです。それだけの数のトレーダーがいたと推察されます。

IronFX-Real1~IronFX-Real11はすべてロンドン郊外にサーバーがあります。

一応MT5のサーバーもデモ版だけはあるようです。MT5を始めようとはしていたのかな。

ウェブサイトのドメインの登録は

初回登録が2016年7月14日です。ドメインのIPはカリフォルニア – レッドウッドシティーです。


IronFXの評判は?

がっつりスキャム(詐欺)認定されていますね。


IronFXのいいとこ、悪いところ

ここまで見てきてあれですが、IronFXは過去にいろいろ(出金停止とか)やらかした過去があります。この業界にはつきものですが、規模がデカかっただけに海外では詐欺認定しているサイトもあります。

が、これはIronFXそのものが詐欺だったというよりは周りがギャーギャー騒いだためにそれに近い対応をせざるを得ないような状況になってしまったのではないかと思います。

IronFX公式HP

FX会社選びに迷っていたらこちら

【海外FX】is6.comの特徴 レビュー 評判 口コミ 徹底調査(おすすめMT4)

is6comのスプレッドは?

is6comには3種類の口座タイプがあります。

マイクロの場合、USDJPY:2.0pips

スタンダードの場合、USDJPY:1.6pips

プロの場合、USDJPY:0.8pips

です。

うん、広い!


is6comのレバレッジは?

「is6comが提供する口座タイプには、マイクロ口座・スタンダード口座の2種類をご用意しています。」

あれ、プロ口座どこいった?

レバレッジは口座残高による上限がありますが、基本的には1000倍です。20,000ドル以上の場合は500倍になります。

口座開設はどちらも無料です。


is6comのプラットフォームは?

is6comのプラットフォームはMT4のみです。

このサイトではMT4/MT5で稼働する自動売買ソフト(EA)を数量限定ですが無料で提供しています。

無料プレゼント企画はこちら


is6comの取引対象は?

is6comの取引対象はFX(33種類)のみです。


is6comの入出金方法は?

is6comの入金方法は、クレジットカード、銀行送金、bitwalletです。

出金方法は、銀行送金、bitwalletです。

電子決済サービスの まとめ はこちら


is6comのサーバーの数、場所は?

サーバーはMT4用が二つあります。

is6com-Liveのサーバーはシンガポールにあります。


is6comの評判は?

is6comのレートは1.851、レビュー数は3つです。

どうやらボーナス関連でクレームが発生する要因があるようです。


is6com公式HP

MT4対応FX会社まとめはこちら

ギャラリー