EAの売買ルールはどう組み立てられる?条件判定から注文までの流れ
著者:FOREX EXCHANGE株式会社 監修:株式会社トリロジー


EA(自動売買)は、あらかじめ定められたルールに基づいて注文や決済を行います。しかし、「条件が揃ったら買う」という一文だけでは、実際にどのような判断を重ねて取引するのかは分かりません。価格やテクニカル指標から売買の機会を見つけても、取引を見送る条件や、保有中の建玉を管理するルールが別に用意されている場合があります。

EAが自動で売買できる仕組みは、7月15日の基本記事で解説しました。本記事では一歩進めて、相場の情報を確認する段階から、エントリー条件、注文、決済、リスク管理までがどうつながるのかを、利用者が読み解くための視点から整理します。プログラムの書き方ではなく、売買ルールの構造がテーマです。

売買ルールは「一つの条件」だけではない

EAの売買ルールは、相場の情報を取り込んだ後、売買のきっかけとなる条件を判定し、必要に応じて取引を控える条件や口座・建玉の状況を確認し、注文へ進むという形で考えられます。注文後には、約定状況や保有建玉に応じた処理も必要になります。

例えば、次のような役割に分けて捉えると分かりやすくなります。

・情報の確認:価格、時刻、値動き、インジケーターの値などを確認する。
・売買シグナル:買い・売りを検討するきっかけとなる条件を判定する。
・フィルター:時間帯や相場状況などを理由に、その取引を認めるか判断する。
・注文前の確認:建玉の有無、取引数量、証拠金や取引条件などを確認する。
・注文と管理:注文を送信し、結果に応じて建玉や未約定注文を管理する。
・決済・停止:保有中の建玉を閉じる条件や、新規取引を控える条件を扱う。

これは役割を理解するための整理であり、すべてのEAが同じ順番・同じ機能で動作するという意味ではありません。リスク確認を先に行うものもあれば、必要な条件だけを組み込むものもあります。重要なのは、「売買したい」という判定と「実際に注文を出せる」という状態を分けることです。

相場の情報は、何をいつ判定するために使う?

ルールの出発点となる情報には、現在の買値・売値、過去の高値・安値、ローソク足の終値、取引時間などがあります。移動平均線やRSIといったインジケーターの値を使うEAもあれば、価格や時刻を中心に判定するEAもあります。インジケーターは必須ではありません。

同じ情報でも、どの時点の値を使うかによって条件の意味が変わります。例えば、形成途中のローソク足で移動平均線の位置関係を判断すると、足が確定する前に条件が成立したり、成立しなくなったりする場合があります。一方、確定した足を使うルールは、その足の値が確定してから判定します。

したがって、「移動平均線を利用する」という説明だけでは十分ではありません。どの時間足を使うか、確定足か形成途中の足か、何を成立条件とするかによって、売買のタイミングは異なり得ます。ただし、利用者が内部の計算式まで把握できるとは限らず、確認できる範囲はEAの仕様説明によります。

インジケーターとEAの役割の違いは、「インジケーターとは?EAとの違いと役割をやさしく解説」をご覧ください。

シグナルとフィルターは何が違う?

「売買シグナル」は、取引を検討するきっかけです。「フィルター」は、その機会を採用するか見送るかを判断する条件です。どちらもルールの一部ですが、役割は異なります。

例えば、短期移動平均線が長期移動平均線を下から上へ抜けたときに買いを検討する、と仮定します。これがシグナルです。そこに「指定された時間帯に限る」「スプレッドがあらかじめ定めた範囲内にある」という条件を加えれば、シグナルが出ても注文しない場面が生じます。

ただし、買いの条件を必ず移動平均線で作る必要はありません。価格水準、一定期間の値動き、時間帯などを組み合わせる方法もあります。ここでの例は条件の関係を説明する架空のもので、特定の売買戦略を勧めるものではありません。

また、条件をすべて満たす必要がある場合と、複数の条件のうち一つでよい場合では結果が変わります。「AかつB」なのか、「AまたはB」なのか、条件を満たす順序や有効期限があるのか。こうした違いも売買ルールの一部です。

具体例:買いシグナルが出ても注文しないことがある

複数条件の関係を、仮のEAで考えてみましょう。次の条件を持つものとします。

・条件A:短期移動平均線が長期移動平均線を下から上へ抜けたら、買いを検討する。
・条件B:判定時刻が、あらかじめ定めた取引可能な時間帯に含まれる。
・条件C:スプレッドが、EAに設定された許容範囲に収まっている。
・条件D:この例では、同じ通貨ペアに対象EAの建玉や発注済み注文がない。

この架空例では、A・B・C・Dをすべて満たしたときだけ、新規買い注文を送信する方針とします。各条件の具体的な数値は設定していません。

場面①:Aが成立し、B・C・Dも満たしている場合、注文送信の段階に進みます。ただし、送信した注文が必ず受け付けられ、約定するわけではありません。

場面②:Aは成立していても、Cのスプレッド条件を満たさない場合、新規注文を見送ります。売買シグナルが出たことと、注文することは同じではありません。

場面③:A・B・Cは成立していても、Dを満たさない場合、新規注文を控えます。これは同じ通貨ペアへの重複発注を避けるために設定した、この例独自のルールです。

実際のEAがこの4条件を使うという意味ではありません。また、判定が後の時点でやり直されるか、シグナルがその時点で失効するかも設計次第です。「条件を満たさなかった後、どう扱うか」まで含めてルールであることが、この例の要点です。

注文条件と、注文が成立する条件は別

EAが取引を行うと判断しても、そこから先には注文処理があります。取引数量や注文価格、注文方式などを設定し、取引システムに注文を送信します。必要証拠金、取引可能な時間、銘柄の注文条件、通信状況などによって、注文が受け付けられない場合もあります。

さらに、注文送信・注文受付・約定は、同じ出来事ではありません。成行注文でも、価格変動や取引状況によって、想定した価格からずれたり、約定しなかったりする場合があります。指値・逆指値注文でも、条件となる価格への到達や、希望どおりの約定が必ず保証されるわけではありません。

注文方式の選択は売買ルールの一部ですが、注文方式だけでEAの成績や再現性の優劣が決まるわけではありません。FX会社に受け付けられた指値・逆指値注文は、EAが停止しても残る場合があります。ただし、約定の可否や価格は相場状況・取引条件に左右され、EAによる注文の変更・取消や決済管理は、通信・稼働状況の影響を受けます。

成行・指値・逆指値の基本的な違いは、別の記事で解説する予定です。ここでは、売買判断と注文処理を分けて理解することにとどめます。

注文後は「保有しているか」だけでなく状態を確認する

売買ルールは、新規注文を送信した時点で終わりではありません。注文が未約定のまま残る場合、約定して建玉ができた場合、取消や拒否が生じた場合では、その後に必要な処理が異なります。

例えば、先ほどの架空例で重複発注を認めないなら、建玉の有無だけでなく、発注済みの注文が残っていないかも重要です。約定する前に同じシグナルを繰り返し判定すると、設計によっては意図しない複数注文につながる可能性があります。

一方、複数建玉を保有することを前提に設計されたEAもあります。建玉が一つあれば常に新規注文を止める、と一般化するのは適切ではありません。また、他のEAや手動取引による建玉をどう区別するかも、取引システムやEAの仕様によって異なります。

利用者の立場では、取引履歴に新規注文が見当たらないとき、単に「シグナルが出なかった」とは判断できません。フィルターで見送ったのか、発注前の確認で止まったのか、注文を送ったが成立しなかったのか。こうした違いを区別する視点が必要です。

決済ルールは新規注文とは別に考える

エントリーの条件が分かっても、どのように取引を終えるかが分からなければ、売買ルール全体は理解できません。EAには、利益確定、損切り、一定時間の経過、指標の変化などを決済の条件として利用するものがあります。

例えば「短期移動平均線が長期移動平均線を上回ったら買う」という入口の条件を持つEAが、反対の位置関係になったら必ず決済するとは限りません。決済には独立した価格条件を使う場合もあれば、保有時間や複数の条件を組み合わせる場合もあります。

また、建玉があるときの判断と、建玉がないときの判断も異なります。新規注文を見送る条件が成立したからといって、保有中の建玉まで直ちに決済する設計とは限りません。「新しく持たない」と「すでに持っている建玉を閉じる」は別の判断です。

損切りの具体的な方法や、ストップ注文でも価格を保証しないことについては、「EAの損切りとは?リスク管理における役割と注意点」をご覧ください。