ExcelVBAではじめるバイナリーオプション自動取引

4. 自動取引ツールを作ろう

g.購入画面を操作する2


g. 購入画面の操作2

カーソルを移動させてクリックする

 カーソル位置が決まったので、次にカーソルを指定した位置へ移動させてクリックしてみます。

 プログラムでクリック動作を行う場合、クリックしてはいけないところをクリックしないように十分に注意してください。

 以下のコードは、「(最新の)受付中タブ」、「円高」、「円安」、「購入」、「CLOSE」の順にカーソルを移動させ、それぞれクリックするコードです。カーソル位置は、自分で取得した正しい値に書き換えてください。

 購入画面をフルスクリーン表示した状態でコードを実行すると(正しいカーソル位置を指定後、購入金額が設定され、確認省略がチェックされている場合)、円安が購入されてしまうので試すときには注意してください。

Declare Function SetCursorPos Lib "user32" _ (ByVal setx As Long, ByVal sety As Long) As Long 'カーソル位置セット Declare Sub mouse_event Lib "user32" _ (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _ ByVal cButtons As Long, ByVal dwExtraInfo As Long) 'マウスイベント Sub SetCursorTest() 'カーソル位置指定とクリックテスト Const Tab_X As Integer = 100 '受付中タブの位置 Const Tab_Y As Integer = 100 Const Taka_X As Integer = 200 '円高の位置 Const Taka_Y As Integer = 200 Const Yasu_X As Integer = 300 '円安の位置 Const Yasu_Y As Integer = 300 Const Buy_X As Integer = 400 '購入の位置 Const Buy_Y As Integer = 400 Const Close_X As Integer = 500 'CLOSEの位置 Const Close_Y As Integer = 500 SetCursorPos Tab_X, Tab_Y 'カーソルを直近の受付中タブへ移動 mouse_event 2, 0, 0, 0, 0 'カーソル位置で左クリック mouse_event 4, 0, 0, 0, 0 Application.Wait Time:=[Now() + TimeValue("00:00:02")] '2秒ウェイト SetCursorPos Taka_X, Taka_Y 'カーソルを円高ボタンへ移動 mouse_event 2, 0, 0, 0, 0 'カーソル位置で左クリック mouse_event 4, 0, 0, 0, 0 Application.Wait Time:=[Now() + TimeValue("00:00:00.2")] '0.2秒ウェイト SetCursorPos Yasu_X, Yasu_Y 'カーソルを円安ボタンへ移動 mouse_event 2, 0, 0, 0, 0 'カーソル位置で左クリック mouse_event 4, 0, 0, 0, 0 Application.Wait Time:=[Now() + TimeValue("00:00:00.2")] '0.2秒ウェイト SetCursorPos Buy_X, Buy_Y 'カーソルを購入ボタンへ移動 mouse_event 2, 0, 0, 0, 0 'カーソル位置で左クリック mouse_event 4, 0, 0, 0, 0 Application.Wait Time:=[Now() + TimeValue("00:00:00.2")] '0.2秒ウェイト Application.Wait Time:=[Now() + TimeValue("00:00:02")] '2秒ウェイト SetCursorPos Close_X, Close_Y 'カーソルをCLOSEボタンへ移動 mouse_event 2, 0, 0, 0, 0 'カーソル位置で左クリック mouse_event 4, 0, 0, 0, 0 Application.Wait Time:=[Now() + TimeValue("00:00:01")] '1秒ウェイト End Sub

コードを簡単に解説

 まず、クリック対象のカーソル位置の座標を定数として宣言しています。

 次にSetCursorPosで横座標、縦座標を指定し、カーソルを移動させています。

 mouse_eventの第一引数に2を指定して左クリックをONし、4を指定してOFFすることで、左クリック動作を実行しています。

 クリック後、処理待ちの為にApplication.Waitを使って適当なウェイトを入れています。

 「購入」をクリックするまでメッセージが表示されるか否かが分からないため、最後に「CLOSE」位置をクリックするようにします。メッセージが表示されてしまうと「CLOSE」をクリックしない限り他の操作が無効になるので注意が必要です。

実際の取引の前に

 以下は仮に外為オプションで自動取引を行うとした場合の説明です。

 実際に取引を行うには、外為オプション口座に資金振替を行う必要があります。

 資金振替を行った後、購入可能金額内の購入金額を指定し、円高か円安かを選び、確認省略にチェックしてから購入をクリックして一旦購入すると、次回からは購入金額、チェックボックスの内容が保持されます。

 取引前に購入可能金額を調整し、購入単位分の金額を指定し、確認省略にチェックを入れて一回購入するまでは手作業で行います。

 自動取引を行う場合、特に資金振替によって購入可能金額を調整することには最大損失額の設定という意味があり、リスク管理のために重要な作業です。

 初回の購入は、購入設定が記憶されていない場合に設定を保存することが目的なので、すぐに取り消しても構いませんが、その際は締め切り時間に注意してください。

 なお、外為オプションに限らず、購入後の頻繁なキャンセルは取扱業者に対して過剰な負担を強いることになりますので、利用者側に認められているサービスではあっても頻繁な購入キャンセルを前提とした投資手法(特に自動取引ツールを使用したもの)は控えた方がよいでしょう。