第2章. アルゴリズムの考え方と関数
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
アルゴリズムとは、ある条件付きでコンピュータが適用する規則のセット( )である。一般化アルゴリズムを使用するのは、特定の問題を解決するため、あるいは単に反復的なタスクのシーケンスに従うためである。また、アルゴリズムを使用して、セットした条件をスキャンしてパターンを発見することもできる。
本書の主な目的は、ローソク足のパターンと戦略をスキャンし、発見し、評価する方法を紹介することである。手作業とは対照的にアルゴリズムを使用する主な利点は以下の通りである:
- スピード
- アルゴリズムは人間に比べて極めて高速に実行できる。単純なアルゴリズムであれば、数十万件のデータを数秒でスキャンすることができるが、人間は同じ作業を数週間から数ヶ月かけて行うこともある。
- 規律
- アルゴリズムは明確な規則セットに従っており、時々規則を無視するような感情や情動は持っていない。さらに、アルゴリズムは主観的な解釈の罠に陥ることはない。取引システムを判断するには客観的で明確な尺度が必要なので、これは評価プロセスにとって重要だ。
- エラーの割合
- アルゴリズムにバグがなければ、一般的にエラーはない。人間は不注意や疲労のために多くのミスを犯す可能性がある。
注
取引システムは、 、取引アルゴリズムや危険性管理アルゴリズムといった複数のアルゴリズムで構成されている。堅牢性のあるトレーディング・システムは、明確で安定した規則ベースのアルゴリズムに依存し、信頼できる指標を提供する。
この章は4つのセクションに分かれている。まず原始関数について説明し、この本で使用している基本的なデータ操作を扱う。次に、パターンとストラテジーのシグナルをコード化する方法を示す。そして、シグナルを価格チャート上に視覚化し、審美的でインタプリタブルな表現ができるようにする。最後に、主要なパフォーマンス評価メトリックとそのコーディング方法を学ぶ。この章の概念は、本書の残りの部分で非常に重要であるため、必ずマスターしておくこと。パターンを検出するだけでなく、ストラテジーを作成する際にも役立つ。
基本関数をコーディングする
原始関数は、 、データ配列をよりうまく操作するためのカスタム関数の小さなコレクションである。原始関数のアイデアは、私が若い頃にコーディングを練習するための練習として始まったが、時が経つにつれて、私が研究でいつも使う普通のコード・スニペットとなった。
分析とバックテストは反復的な作業であるため、いくつかの関数があらゆる場所で機能する必要がある。最も基本的な原始関数から始めよう(この本ではずっとnumpy を使うことになることを覚えておいてほしい)。
配列に列を追加する関数
時折、 、カラムを追加し、インジケータやシグナルを入力する必要がある。例えば、4つの列で構成されるOHLC配列があるとする。関数を使用して追加の列を追加することができ、その列は以下のように使用することができる:
- 単純移動平均など、終値から計算される指標。1
- 所定の2進値(買いシグナルは1、売りシグナルは-1など)を用いた売買シグナルのプロキシ。
注
配列の行 は時間ステップを表す。つまり、すべての行が1時間ごとの OHLC 値とインジケータ値、または売買代行を含んでいる。
したがって、最初の原始関数 は、次のコードに示すようにadd_column() となる: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access