全体の流れ
買い注文をし、100ドルの利益が出たら決済する
↓
過去データ(ストラテジーテスター)を使って動作確認する
① 買い注文をし、100ドルの利益が出たら決済する
何をしているプログラムか
このEA(エキスパートアドバイザ)は、次のルールで動きます。
-
まだポジションを持っていない場合
-
成行で「買い注文」を1回だけ出す
-
-
保有中のポジションの合計利益を常に監視
-
利益の合計が 100ドルを超えたら
-
すべてのポジションを決済する
-
その後は もう取引しない(停止フラグを立てる)
-
-
👉
「1回だけ買って、100ドル儲かったら全部決済して終了」
という練習用の自動売買です。
ソースコードの中身(処理内容を日本語で)
■ OnTick(毎回の価格更新時に実行)
-
「今、ポジションが無いか?」を確認
→ 無ければ 買い注文を出す -
「今、全ポジションの利益はいくらか?」を確認
→ 100ドルを超えたら 全決済+停止
■ buy()(買い注文の処理)
-
現在の価格(Ask)で
-
1ロットの 成行買い注文 を出す
-
利確・損切りは設定しない(今回は手動ロジックで管理)
■ getPositionCount()(ポジション数の確認)
-
今トレード中の注文をすべて数える
-
何個ポジションを持っているかを返す
■ getAllProfit()(利益の合計)
-
現在持っているすべてのポジションについて
-
利益を1つずつ足し算する
-
合計利益(ドル) を返す
■ closeAllPosition()(全決済)
-
今持っている全ポジションを順番に選択
-
買いなら Bid、売りなら Ask で
-
成行決済
-
失敗した場合はログにエラーを出す
■ isStop フラグ
-
一度100ドル利益で決済したら true
-
true の間は もう新規注文を出さない
-
→ 無限売買を防ぐための安全装置
② 過去データを使ってプログラムを動かす
なぜ過去データを使う?
-
チャートに直接EAを入れると リアル取引が発生する
-
それを避けるために
👉 ストラテジーテスターで過去データ検証 を行う
ストラテジーテスターの流れ
-
表示 → ストラテジーテスター
-
次を設定
-
エキスパートアドバイザ:
Sample -
通貨ペア:
US500Cash -
モデル:始値のみ
-
期間指定:ON
-
開始日:2019/01/01
-
終了日:2019/02/28
-
時間足:Daily
-
-
スタート を押す
テスト中に起きていること
-
過去のチャートが時間順に再生される
-
条件を満たしたところで
-
買い注文
-
利益が100ドルを超えたタイミングで決済
-
-
「結果」タブで
-
決済日
-
利益額
を確認できる
-