フレームワーク

オブジェクト指向設計の利点ですが、細かい処理を作る前に、ひな形(基底クラス)を使って全体の流れを作って動かす事ができます。EAの場合、取引の流れは同じでエントリーや決済するタイミングが違うだけですよね。例えばOnTickのサンプルコードがフレームワークになります。初期状態はポジションなしから始まります。

void OnTick() {
//---
   int next = status;
	next = current.check();
	if (next != status) {
	   Print("ポジションチェックで状態変化:", status, "→", next);
	   status = next;
	}
  
    // 現在の状態を更新
	current = StatusArray[status];

	// 売りシグナルチェック
	if ( is_sell_signal() ) {
		next = current.sell_signal();
	}

	// 買いシグナルチェック
	if ( is_buy_signal() ) {
		next = current.buy_signal();
	}
	if (next != status) {
	   Print("シグナルで状態変化:", status, "→", next);
	   status = next;
	}
	current = StatusArray[status];
}

OnTickは新しいTickが発生するたびに呼び出されます。最初に現在の状態が想定通りかcheck関数を呼び出します。状態オブジェクトはポジションの状態を確認して、次の状態を返します。(next)

次に売シグナル関数(is_sell_signal関数)を呼び出します。戻り値がtrueの場合、状態オブジェクトに売りシグナルを通知します。状態オブジェクトは次の状態を返します。

同様に買シグナル関数(is_buy_signal関数)を呼び出し、シグナル発生なら状態オブジェクトに通知します。

最後に次の状態に更新して処理終了です。

このサンプルではドテン取引でエントリーと決済判定が同じ処理です。決済判定は別関数にする場合はシグナルと状態の通知関数を増やします。でも同じドテン売買のEAならOnTick関数は変更せずに、シグナル関数の処理(is_sell_signal, is_buy_signal)を変更するだけで実現できます。これをブロックで作れるようにしたのが、簡易EA作成ページになります。

Amazonで好評発売中
EA作成なども承っております

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

アップロードファイルの最大サイズ: 20 MB。 添付可能なファイル:画像, 音声, 動画, 文書, スプレッドシート, 対話型, アーカイブ, その他 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ