バイナリーオプション自動売買システムは、仕事が忙しくてバイナリーオプションの取引をする時間がない方、子育てや家事で忙しい主婦の方、投資の知識がない初心者の方に人気があります。
MT4とUWSCを使ったローオーストラリアの自動売買システム作りに励んできましたが、形になってきましたので、その作成過程をまとめてみます。
この記事は、プログラミング学習のための備忘録です。本記事のコード等を使用する場合は、自己責任でお願いします。
ハイローオーストラリアはデモ取引も出来るので、リスクフリーでお試しできます。
また、今なら新規口座開設した方に5000円がキャッシュバックされるので、このチャンスをお見逃しなく!
詳細は、以下の公式サイトからご確認くださいね。
コピートレード・ツールの特徴
MT4で自動売買ソフトを動かしているトレーダーは、自分のトレードを別のMT4にコピーしたい場合があります。例えば、デモ口座でしか動かない体験版EAや、口座番号が制限されているEA、FXトレーダーが制限しているEAなどです。
この場合、同じパソコンでコピー取引システムを作成します。コピー取引ツールには、サーバーを経由するタイプとサーバーを経由しないタイプがありますが、今回はサーバーを経由しないシンプルなタイプで行います。
インターネットを介さないコピーツールのメリットは、取引の反映が早く、外部サーバーを構築・管理する必要がないことです。
一方、デメリットは、コピー元のMT4とコピー先のMT4が同じPCである必要があることです。デメリットは、接続元と接続先のMT4が同じPCである必要があることです。使用用途はいろいろと限定されますが、基本的には個人での利用を想定しています。
MT4 coding/programming
コード全体は下記。
input uint ShortMAPeriod = 14;
input uint LongMAPeriod = 28;
static datetime LastAlertTime;
void OnTick()
{
double FastMA[3],SlowMA[3];
FastMA[1] = iMA(Symbol(),Period(),ShortMAPeriod,0,MODE_SMA,PRICE_CLOSE,1);
FastMA[2] = iMA(Symbol(),Period(),ShortMAPeriod,0,MODE_SMA,PRICE_CLOSE,2);
SlowMA[1] = iMA(Symbol(),Period(),LongMAPeriod,0,MODE_SMA,PRICE_CLOSE,1);
SlowMA[2] = iMA(Symbol(),Period(),LongMAPeriod,0,MODE_SMA,PRICE_CLOSE,2);
if( TimeCurrent() > LastAlertTime + 300/*to avoid too many alert */ )
{
if( FastMA[1] > SlowMA[1] && FastMA[2] <= SlowMA[2] )
{
SendSignalToFile(“BUY”);
Alert(“BUY”);
LastAlertTime = TimeCurrent();
}
else if( FastMA[1] < SlowMA[1] && FastMA[2] >= SlowMA[2] )
{
SendSignalToFile(“SELL”);
Alert(“SELL”);
LastAlertTime = TimeCurrent();
}
}
}
void SendSignalToFile(string BuyOrSell)
{
int FileHandle;
string FileName = “SignalDataForHighLow.txt”;
int TryCount;
FileHandle = FileOpen(FileName,FILE_WRITE|FILE_TXT|FILE_COMMON);
TryCount = 0;
while( FileHandle == INVALID_HANDLE && TryCount < 30)
{
TryCount++;
FileHandle = FileOpen(FileName,FILE_WRITE|FILE_TXT|FILE_COMMON);
}
if( FileHandle != INVALID_HANDLE )
{
if( BuyOrSell == “BUY” ) FileWriteString(FileHandle,”BUY”);
if( BuyOrSell == “SELL”) FileWriteString(FileHandle,”SELL”);
FileClose(FileHandle);
}
}
AutoITエディション
UWSCは、開発者サイトが消滅したため、海外の大手開発会社であるAutoITが開発することになりました。
AutoITは大手ボット作成ツールで、無料で利用することができます。

SciTE Script Editorは、スクリプトの編集やコンパイルができるメインソフトです。ウィンドウ情報を取得するだけのAutoIT Window Infoもありますが、私はあまり使いません。
言語はBasicライクなので、UWSCやVBAを使ったことがある人なら馴染みがあると思います。
AutoITスクリプトのドキュメントはこちらです。
https://www.autoitscript.com/autoit3/docs/
MT4が出力したファイルをボットで読み込む
MT4上のEA/インジケーターから出力されたシグナルファイルをAutoITで受け取ることができます。$sFileReadにファイル内の情報が格納されます。
ブラウザの起動 – ログインを自動化してはいけない。
IEの起動とログインを自動化することはしていません。技術的には非常に簡単ですが、ログイン遷移はボットにとって最も検知しにくい部分なので、手動で行うのが賢明です。
https://trade.highlow.com/にアクセスし、手動でログインしてください。
HighLowの構造解析とBotを用いたHighLowのボタン操作について
すでに起動されているIEオブジェクトは、_IEAttachで取得することができます。
HotKeySet (“s”, “stopprogram”)
While 1
;ここにループ中の処理
Sleep (1000)
WEnd
Func stopprogram()
Exit
EndFunc
Sleep()関数の引数はミリ秒単位なので、1000なら1秒ごとに売買シグナルをチェックすることになります。1本足レイテンシーアービトラージほどエントリータイミングは厳しくないので、数秒おきでも問題ないと思います。数秒おきでいいと思います。
ただし、MT4で生成されるトレードシグナルがランプアップ、ランプダウン系のロジックであれば、計算間隔を短くした方がいいかもしれません。
全コードが揃ったら、コンパイルしてexeファイルを生成してください。
#include <IE.au3>
HotKeySet (“s”, “stopprogram”)
While 1
$sFilePath = “C:\\Users\\”&@UserName&”\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common\\Files\\SignalDataForHighLow.txt”
$hFileOpen = FileOpen($sFilePath)
$sFileRead = FileRead($hFileOpen)
FileClose($hFileOpen)
;MsgBox(0,”debug”,$sFilePath&$sFileRead)
$oIE = _IEAttach(“https://trade.highlow.com/”, “URL”)
;_IEAction($oIE, “refresh”)
_IELoadWait($oIE)
$oIEactive = WinActivate(“取引| HighLowバイナリーオプション – Internet Explorer”)
if $sFileRead == “BUY” Then
;press high
$oDivs = _IETagNameGetCollection($oIE, “div”)
For $oDiv In $oDivs
If StringInStr($oDiv.classname, “up button”) > 0 and $oDiv.innertext = “High” Then
_IEAction($oDiv, “click”)
ExitLoop
EndIf
Next
ElseIf $sFileRead == “SELL” Then
;press low
$oDivs = _IETagNameGetCollection($oIE, “div”)
For $oDiv In $oDivs
If StringInStr($oDiv.classname, “dwn button”) > 0 and $oDiv.innertext = “Low” Then
_IEAction($oDiv, “click”)
ExitLoop
EndIf
Next
EndIf
Sleep(1000)
if $sFileRead == “BUY” or $sFileRead == “SELL” Then
;press entry
;MsgBox(0,”debug”,”entory ok?”)
_IELinkClickByText ($oIE, “今すぐ購入”)
$FileHandle = FileOpen($sFilePath,2)
FileWrite($FileHandle,”entried”)
FileClose($FileHandle)
EndIf
If Mod(@MIN,Random(11,19)) == 0 Then
_IELoadWait($oIE)
EndIf
Sleep (1000)
WEnd
Func stopprogram()
Exit
EndFunc
リアルタイムバイナリーオプション自動売買のご利用方法
https://trade.highlow.com/にアクセスしてログイン
MT4を起動し、自動売買したい通貨ペアのチャートにEAを設定します。
ボットを起動する。

まとめ
MT4とAutoITを使って、HighLowでバイナリーオプションをリアルタイムに自動売買する方法について説明しました。
これまで説明した内容では
- MT4でシグナルを生成し、データをファイルに飛ばす
- ファイル(テキストファイル)内のシグナルデータをマクロで読み込む
- マクロでオブジェクト化したバイナリーサイトのボタンを押す
基本的なことは、これまでの講座で確認していますので、目新しいことはありません
バイナリーオプションの場合、ベットするのも”楽しみ”も一つなので、それを自動化するならFXやアービトラージでいいんじゃね? と今更ながらに思ったりします。
結局、勝つかどうかはリアルタイムの自動売買開発ではなく、過去の検証やロジック構築にあるので、そちらに力を入れた方が賢明でしょう。
ハイローオーストラリアはデモ取引も出来るので、リスクフリーでお試しできます。
また、今なら新規口座開設した方に5000円がキャッシュバックされるので、このチャンスをお見逃しなく!
詳細は、以下の公式サイトからご確認くださいね。