アルゴリズム取引におけるPython - ページ 19

 

Python でのローソク足パターンのバックテストによるスキャルピング戦略



Python でのローソク足パターンのバックテストによるスキャルピング戦略

このビデオでは、前の 2 つのビデオで提示された概念に基づいて構築されたシンプルなスカルプト戦略について説明し、デモンストレーションします。この戦略の具体的な詳細と Python コードに興味がある場合は、ビデオの説明にリンクがあります。

私たちが使用している戦略は、高速、中速、低速の 3 つの指数移動平均 (EMA) を中心に展開しています。これらのEMAの配置を分析することで、価格トレンドが上昇傾向であるか下降傾向であるかを推定できます。上昇トレンドでは、高速 EMA は中程度の EMA を上回り、中程度の EMA は低速 EMA を上回ります。逆に、下降トレンドでは順序が逆転します。

上昇トレンドでポジションを購入する場合は、高速 EMA より下で開始し、上で終了するローソク足を探します。一方、下降トレンドでの売りポジションの場合は、速いEMAより上で開き、下で閉じるローソク足を探します。このビデオでは、上昇トレンドでポジションを購入するためのこれらの基準を満たすローソク足の例を示しています。

この戦略は、レバレッジ比率 1:100 のレバレッジ口座を使用して以前にテストされ、最適化されています。テストは 3 年間にわたって実施され、回収率は 445%、勝率は 55% となりました。ただし、この戦略では大きなドローダウン期間が見られ、資本曲線は 3 年間を通じて安定していなかったことに注意することが重要です。

戦略を改善するために、追加の条件が導入されます。ローソク足が高速EMAを横切ることに加えて、今度はローソク足の芯の長さを考慮します。上昇トレンドの場合、ローソク足には非常に短い下尾があり、強い上昇の勢いを示しています。同様に、下降トレンドでは、ローソク足に高いテールがあってはなりません。この条件は、勢いの弱い信号をフィルタリングすることを目的としています。

この追加条件の有効性を評価するために、Python を使用して戦略をバックテストします。バックテストのソース コードは Jupyter Notebook ファイルで提供されており、ビデオの説明内のリンクからダウンロードできます。

バックテストは、2019 年から 2022 年までの 3 年間のユーロ/米ドル 15 分足チャートのデータを使用して実行されます。データは、ボリュームがゼロのローソク足を削除し、データ フレームのインデックスをリセットすることによって前処理されます。 3 つの移動平均 (50、100、および 150) と平均真の範囲 (ATR) がデータ フレームに追加されます。

この戦略は移動平均の位置合わせに基づいてシグナルを生成し、トレンドと同じ方向に速い EMA を横切るローソク足を特定することで合計シグナルが取得されます。ビデオでは、これらのシグナルをチャート上でどのように視覚化できるかを示します。

ストップロスとテイクプロフィットの値を設定するためのさまざまな方法がテストされます。これらには、固定距離、ATR 関連の距離、トレーリング ストップロス、価格から観察されるストップロスが含まれます。各メソッドの結果は、3 番目の条件を追加する前後で比較されます。

3 番目の条件を追加すると、テストされたすべてのメソッドで戦略が大幅に改善されました。固定距離のストップロスおよびテイクプロフィット手法では、勝率 59% で 1805% のリターンが得られます。 ATR関連手法では249%のリターンと51%の勝率を達成しています。以前は負けていたトレーリングストップロス手法は、現在では 394% のリターンと 42.5% の勝率をもたらしています。最後に、同じく負けていた価格から観察されるストップロスは、現在 373% の収益を生み出し、勝率は 49% です。

収益の向上に加えて、すべてのメソッドの資本曲線は全体的に上昇傾向を示しており、以前の結果と比較してより安定したプラスのパフォーマンスを示しています。

このビデオでは、この戦略が完全なトレーディング システムとしてではなく、低芯条件を追加した場合の影響を説明するものであることを強調しています。

ビデオの最後では、この戦略を使用する際に考慮すべきいくつかの重要な点を強調しています。

  1. ビデオで示されている戦略は簡略化された例であり、包括的な取引システムと見なされるべきではありません。これは、特定の条件を追加することで戦略のパフォーマンスがどのように向上するかを示すものとして機能します。

  2. バックテストの結果は将来のパフォーマンスを示すものではありません。この戦略はテスト期間中に収益の向上を示しましたが、市場状況は変化する可能性があり、過去の結果が将来再現されない可能性があります。

  3. 実際の取引に戦略を適用する前に、徹底的なテストと最適化を実行することが不可欠です。バックテストを使用すると、さまざまな市場状況下で戦略のパフォーマンスを評価し、より良い結果を得るためにパラメータを調整できます。

  4. リスク管理は非常に重要です。ストップロスとテイクプロフィットのレベルを適切に設定することは、資本を保護し、リスクを管理するために不可欠です。ビデオでは、これらのレベルを設定するためのさまざまな方法を紹介しましたが、適切な値を決定する際には、リスク許容度とアカウントのサイズを考慮することが重要です。

  5. トレーディングを成功させるには感情的な規律が必要です。自分の戦略を堅持し、短期的な市場変動に基づいて衝動的な決定を下さないようにしてください。

  6. この戦略を補完する可能性のある他の要因や指標を検討してください。すべての市場状況で完璧に機能する単一の戦略は存在しないため、より包括的な分析を行うには複数の指標と手法を組み合わせることが有益です。

  7. 戦略のパフォーマンスを継続的に監視し、評価します。市場の状況が変化するにつれて、利益を維持するにはアプローチを適応させ、改良することが必要になる場合があります。

金融市場での取引にはリスクが伴うため、実際の資金を投入する前に自分自身を教育し、専門家のアドバイスを求め、慎重に練習することが重要であることを忘れないでください。このビデオは教育リソースとして機能し、自分の取引スタイルとリスク許容度に合わせて戦略をさらに探索しカスタマイズするのはあなた次第です。

Scalping Strategy With CandleStick Pattern Backtest In Python
Scalping Strategy With CandleStick Pattern Backtest In Python
  • 2022.03.10
  • www.youtube.com
This is a scalping Trading Strategy optimization using CandleStick Wick length pattern to confirm price momentum along with 3 moving exponential averages to ...
 

Python での簡単な EMA スキャルピング取引戦略のバックテスト (パート 1)


Python での簡単な EMA スキャルピング取引戦略のバックテスト (パート 1)

今日、私たちはスキャルピング戦略をテストする旅に乗り出します。最近、皆さんの多くがこれをリクエストしていることは知っていますが、私は通常、短い時間枠やスキャルピングを避けています。なぜなら、それは危険なアプローチであり、しばしば精神的に消耗するものであると考えているからです。

ただし、アルゴリズム的な手法を使用すると、物事は簡単になる可能性があります。アルゴリズムを使用すると、戦略をテストし、予想される結果を明確に理解できます。したがって、私たちのモデルはすでにバックテストされているため、不快な驚きが起こらないことを願っています。いつものように、コーディング部分に興味がある場合は、ビデオの説明にあるリンクから Python コードをダウンロードできます。そうでない場合は、単にビデオを楽しんで、私たちの戦略がどのような結果をもたらすかを確認してください。

まず、比較的単純なものを選択しました。3 つの指数移動平均を使用します。 1 つは高速、もう 1 つは中速、3 つ目は低速です。これらの移動平均を使用して傾向を検出します。これらの移動平均が特定の順序で並んでいる場合 (速い移動平均より中程度、遅い移動平均より上)、上昇傾向が見られます。逆に、その逆の順序は下降トレンドを示します。

傾向の正確性を確保するために、もう 1 つ条件を追加しました。これらの曲線の傾きは同じ方向を向いている必要があります。上昇傾向の場合、3 つの曲線は正の傾きを持つ必要があり、下降傾向の場合、傾きは負になる必要があります。

明確なトレンドシグナルが得られたら、エントリーポイントを探します。たとえば、買いポジションを探している場合、高速移動平均より下で始まり、上で閉じるローソク足を待ちます。このローソク足は上昇トレンドの継続を示し、エントリーポイントとして機能します。

ここで興味深いのは、これらすべてを Python でコード化し、戦略をバックテストできることです。このビデオを簡潔にしたいため、最初は最適化にはあまり焦点を当てません。ただし、将来のビデオでは、パラメータの最適化を試み、取引で勝利の組み合わせを達成できるかどうかを確認する予定です。

ここで、Python コードを詳しく調べて、バックテストの結果を調べてみましょう。 2019 年から 2022 年までの 15 分足のローソク足を持つユーロ/米ドル通貨ペアを使用します。データ フレームは 105,000 行で構成され、各行は 15 分足のローソク足を表します。ボリュームがゼロの行を削除することでデータ フレームをクリーンアップします。これは、市場の動きがない週末や休日に相当します。

次に、pandas_ta (パンダ テクニカル分析) モジュールをインポートし、EMA 50、EMA 100、EMA 150 の 3 つの異なる移動平均を計算します。また、10 ローソク足のローリング ウィンドウを使用して、これらの移動平均の傾きを計算します。

この段階でのデータ フレームには、始値、高値、安値、終値、出来高、3 つの移動平均、およびそれらに対応する傾きが含まれています。トレンド検出の条件を確認できるようになりました。高速移動平均が中移動平均を下回り、中移動平均が低速移動平均を下回り、3 つの傾きがすべて負の場合、下降トレンドを示します。逆に、高速移動平均が中位移動平均を上回り、中位移動平均が低速移動平均を上回り、3 つの傾きがすべて正の場合は、上昇トレンドのシグナルとなります。これらの条件はデータ フレームに列として追加されます。

チャート上のシグナルを視覚化するために、合計シグナルに基づいてローソク足の上または下にポイントをプロットする関数を定義します。合計シグナルはエントリーポイントを表し、1 は売りシグナル、2 は買いシグナルを示します。ポイントの位置はデータ フレームに列として追加されます。

特定の範囲のローソク足のシグナルとローソク足をプロットします。

特定の範囲のローソク足のシグナルとローソク足をプロットし、戦略のパフォーマンスを視覚的に分析できるようにします。緑の円は買いシグナルを示し、赤丸は売りシグナルを示します。この視覚的表現は、戦略がリアルタイムでどのように実行されたかを理解するのに役立ちます。

シグナルを視覚化した後、戦略のパフォーマンスを計算します。資本金 10,000 ドルから始めて、各キャンドルを繰り返していきます。買いシグナルを受け取った場合は、固定サイズでロングポジションをエントリーします。売りシグナルを受け取った場合、ロングポジションを終了し、エントリー以降の価格の変化に基づいて損益を計算します。累積損益と実行された取引数を追跡します。

バックテスト期間の終了時に、合計損益、勝った取引の数、負けた取引の数、勝率、取引ごとの平均損益を計算します。

ビデオでは、特定の戦略のバックテスト結果を紹介します。結果は選択した時間枠と通貨ペアに固有であることに注意してください。この戦略は、他の市場状況やパラメーターが異なる場合には、異なるパフォーマンスを示す可能性があります。

結果を要約すると、バックテストでは、戦略が比較的良好なパフォーマンスを示し、バックテスト期間にわたってプラスのリターンを生み出していることがわかりました。ただし、過去のパフォーマンスは将来の結果を示すものではなく、追加のテストと最適化が必要になる場合があることに注意することが重要です。

Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
  • 2022.02.24
  • www.youtube.com
Simple scalping Trading strategy using 3 exponential moving averages backtested in python, the scalping strategy is explained and the python code also in Jup...
 

Python でのシンプルな EMA スキャルピング取引戦略のバックテスト (パート 2 最適化)



Python でのシンプルな EMA スキャルピング取引戦略のバックテスト (パート 2 最適化)

やあ!このビデオへようこそ。これは前のビデオの続きです。このビデオでは、以前に紹介したスカルプト戦略を最適化することを目的としています。簡単にまとめると、移動平均の傾きを計算する際に考慮するローソク足の数を決定する「バックローリング n」と呼ばれるパラメーターの最適化に焦点を当てます。ローソク足の数を 20、10、5 などのように変えることで、これらの移動平均の平均傾きを計算できます。さらに、-10 から -4 などの特定のしきい値未満の傾きをテストするなど、移動平均の傾きに条件を追加する可能性を検討します。これらのパラメーターを実験することで、傾向を特定するためのより優れたフィルターを作成することを目指しています。

さらに、固定ストップロスとテイクプロフィットの値、トレーリングストップロス、ATR(アベレージトゥルーレンジ)関連のストップロスとテイクプロフィットなど、さまざまな取引管理アプローチを検討します。これらのさまざまなアプローチを検討することで、どの貿易管理戦略が最も有利な結果をもたらすかを判断したいと考えています。

15 分の時間枠で作業しているため、このスカルプト システムは高速取引スタイル向けに設計されていないことに注意することが重要です。ただし、同じシステムをより短い時間枠でテストすることはできますが、市場のノイズが増加するため、より困難になる可能性があります。

コードに入る前に、戦略を詳しく説明した前のビデオを視聴することをお勧めします。これにより、これから説明する最適化プロセスをより深く理解できるようになります。

さて、Jupyter Notebook ファイルに移りましょう。まず、データ フレームを作成し、データをクリーンアップします。次に、3 つの異なる移動平均を計算し、これらの移動平均の傾きを計算します。ここから戦略のテストを開始します。

最初に、10 本のローソク足のローリング ウィンドウを検討します。これは、これら 10 本のローソク足のデータを使用して、高速移動平均、中速移動平均、低速移動平均の傾きを平均することを意味します。このコードを実行して、前のビデオで紹介した信号を含め、すべてが正しく機能していることを確認します。

テストを容易にするために、15 分のローソク足で作業していることを前提として、4 本のローソク足が 1 時間を表すとみなして時間スケールを確立します。この設定を使用すると、データ フレームの特定のスライスを選択して戦略をテストできます。たとえば、開始インデックスを 37,000 として指定し、対応する長さを選択することで、3 か月の期間を選択できます。

選択した期間のデータをロードした後、バックテストを実行できます。初期ロットサイズは株式の 30% に設定されており、ストップロスは 40 ピップス、テイクプロフィットは 45 ピップスと考えられます。また、開始点として現金残高が 100 であるレバレッジ口座を反映して、100 に 1 のマージンを適用します。

バックテストを実行すると、3 か月間で 107% のリターンが得られました。ただし、モデルの堅牢性を確保するには、さまざまなタイム スライスで戦略をテストすることが重要です。開始インデックスを変更することで、さまざまな期間を選択してパフォーマンスを評価できます。たとえば、別の開始インデックス 47 を試してバックテストを実行すると、30% の収益が得られます。

さまざまな開始インデックスでこのプロセスを繰り返し、複数の期間にわたる戦略のパフォーマンスを分析できます。ただし、長期間テストするには、データ フレームのより小さい部分を選択する必要があります。たとえば、10 か月または 12 か月のスライスを選択して、年間パフォーマンスを評価できます。

この戦略を 1 年間にわたってテストした結果、100% の収益が達成され、実質的に当初の金額の 2 倍になりました。これはプラスではありますが、取引頻度は比較的低く、年間取引件数は 193 件のみです。勝率は約 44% であり、改善の余地があることがわかります。

戦略を強化するために、「バック ローリング n」パラメーターのさまざまな値を検討します。 20、10、5 などのさまざまな数のローソク足をテストすることで、戦略のパフォーマンスに対するローソク足の影響を評価できます。たとえば、コードを変更して「バック ローリング n」値を 20 に設定し、バックテストを再実行できます。

「バックローリング n」を 20 としてテストしたところ、3 か月間で 90% の収益が観察され、初期設定の 10 よりわずかに低くなりました。これは、「バックローリング n」が小さいほど効果的である可能性があることを示唆しています。短期的なトレンドを捉えます。

次に、移動平均の傾きに基づいた追加の条件を導入します。たとえば、3 つの移動平均すべての傾きが -4 未満でなければならないという要件を実装できます。これは、3 つの傾きがすべてマイナスで、-4 を下回る場合にのみ取引に参加することを意味します。それに応じてコードを変更し、バックテストを実行します。

追加の条件を実装することで、戦略をさらに洗練させることができます。テストの結果、3 か月間で 127% の収益が得られ、当初の結果と比較して改善が見られました。ただし、これらの条件はより厳格なフィルターを提供するため、取引の頻度も低下する可能性があることに注意することが重要です。

次に、さまざまな貿易管理アプローチを検討してみましょう。まず、固定のストップロスとテイクプロフィット戦略を実装し、両方のパラメーターに事前に設定した値を設定します。たとえば、固定ストップロスを 40 ピップス、テイクプロフィットを 45 ピップスに設定できます。コードを変更してバックテストを実行した後、結果を分析します。

固定のストップロスとテイクプロフィットのアプローチにより、3 か月間で 95% のリターンが観察されました。これは当初の結果よりわずかに低いですが、管理されたリスク管理システムを提供します。ただし、その有効性を評価するには、より長期間およびさまざまな市場状況にわたるパフォーマンスを評価することが重要です。

次に、トレーリングストップロス戦略を検討します。固定値を使用する代わりに、ストップロスは取引が有利に進むにつれて動的に調整されます。たとえば、トレーリング ストップロスを 30 ピップスに設定できます。これは、価格が 30 ピップス有利に動いた場合、ストップロスが損益分岐点に移動することを意味します。それに応じてコードを変更し、バックテストを再実行します。

トレーリングストップロスアプローチを使用すると、3 か月間で 120% のリターンを達成できます。これは、ストップロスを動的に調整して利益を保護し、利益を最大化できる可能性を示しています。ただし、堅牢性を確保するには、さまざまな時間枠や市場状況にわたってそのパフォーマンスを評価することが不可欠です。

最後に、Average True Range (ATR) に基づいた取引管理戦略を検討します。 ATR は市場のボラティリティの尺度を提供し、これを利用してストップロスとテイクプロフィットのレベルを設定できます。 ATR を戦略に組み込むことで、リスク管理を一般的な市場状況に適応させることができます。コードを変更して ATR ベースのストップロスとテイクプロフィットレベルを実装し、バックテストを実行します。

ATR ベースのストップロスとテイクプロフィットのレベルを組み込むことで、3 か月間で 110% の収益を達成します。これは、当社のリスク管理を市場のボラティリティに適応させることが潜在的に有効であることを示しています。

結論として、最適化プロセスを通じて、スカルプト戦略を改善するためにさまざまなパラメーターとトレード管理アプローチを検討しました。 「バックローリング n」パラメータを変更し、移動平均の傾きに基づいた追加条件を実装し、さまざまな取引管理手法を検討することにより、戦略のパフォーマンスを向上させることができました。ただし、ライブ取引に適用する前に、さまざまな時間枠や市場状況でさらにテストを実施し、戦略の堅牢性を評価することが重要です。

Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
  • 2022.03.03
  • www.youtube.com
This is a continuation of the previous video, here we optimize our simple EMA Scalping trading strategy and we try to backtest the different parameters sets ...
 

レバレッジ効果を利用した高収益取引戦略



レバレッジ効果を利用した高収益取引戦略

みなさん、こんにちは。私のチャンネルへようこそ。今日は、これまで取り上げなかったトピックであるレバレッジについて詳しく掘り下げていきます。内在的なリスクを考慮して、私はこれについてかなり懐疑的だったことを認めなければなりません。ただし、これらのビデオは主に教育目的であることを強調したいと思います。私は、その意味を十分に理解せずにレバレッジ取引システムを盲目的に採用することをお勧めしません。したがって、このビデオでは、以前のビデオですでに説明した、以前に使用した取引戦略を取り上げ、取引システムにレバレッジを組み込む効果を探ります。

レバレッジがどのように機能するかを簡単に紹介することから始めましょう。通常、レバレッジは 1:10 から 1:1000 までの比率で表されますが、1:10 から 1:50 の間の比率が一般的です。これは、1,000 ドルの口座をお持ちの場合、1:10 のレバレッジ比率を選択すると、最大 10,000 ドルのポジションを売買できることを意味します。レバレッジ比率をたとえば 1:50 に高めると、アカウントに同じ 1,000 ドルがあれば、最大 50,000 ドル相当の購入が可能になります。利用できる特定のレバレッジ オプションは、ブローカー、ブローカーが運営されている国、規制、およびアカウント タイプに関連するその他の要因によって異なります。

ただし、レバレッジにはコストがかかることに注意することが重要です。潜在的な利益を拡大できる一方で、リスクも増大し、アカウント残高がすぐになくなる可能性があります。初心者は、経験不足を利用して大手トレーダーやブローカーのターゲットになることがよくあります。これを念頭に置くことが重要です。

レバレッジを使用する際に留意すべき重要なルールが 2 つあります。まず、戦略の勝率が高い場合、レバレッジを活用することで利益を拡大できます。逆に、戦略の勝率が低い場合は、損失も拡大します。勝率の高低の定義は、戦略の種類、ストップロスとテイクプロフィットの値、資金管理アプローチなどのさまざまな要因によって異なります。レバレッジには代償が伴うことを常に忘れないでください。所有する資金の 100 倍でポジションを売買できる場合、それは資金が主に潜在的な損失をカバーするために存在していることを意味します。これは、大幅に大きな金額で取引する場合に急速に発生する可能性があります。

このビデオでは、Python を利用して、以前に説明した戦略をバックテストします。まず通常の取引口座を使用してリターンを確認し、次にアルゴリズム取引戦略にレバレッジ口座を導入します。これらの変動をバックテストし、結果を検証し、レバレッジ口座の使用に伴う利点とリスクを評価します。 Python を使用する利点は、任意のパラメーターを必要に応じて変更し、収益率への影響を観察できることです。この計算能力により、レバレッジ アカウントを使用するメリットとデメリットをテストして洞察を得ることができます。

私たちが使用する Python コードは、トレーディングにおけるマーチンゲール アプローチに関する前のビデオで使用されたコードに似ています。最初のセルには、データのロードとクリーニング、インデックスのリセット、その他の必要な手順の実行が含まれます。コードについては以前のビデオで説明したため、今日はあまり時間をかけません。サポート関数とレジスタンス関数をローソク足パターン認識とともに利用して、トレンドの反転を検出し、取引シグナルを生成します。この戦略では、潜在的なトレンド反転シグナルとしてサポートまたはレジスタンスレベル付近で発生する拒否ローソク足パターンに焦点を当てます。

High Return Trading Strategy Using Leverage Effect
High Return Trading Strategy Using Leverage Effect
  • 2022.02.17
  • www.youtube.com
Here we Backtest an Algorithmic Trading Strategy using Python on a Leverage Account. The leverage can be a variable depending on the strategy you are intend...
 

Python でのマーチンゲール スイング トレード戦略アルゴリズム バックテスト



Python でのマーチンゲール スイング トレード戦略アルゴリズム バックテスト

今日は、マーチンゲール法と勝利のトレーディング戦略を組み合わせた魅力的なトピックについて詳しく掘り下げていきます。マーチンゲール法に関する前回のビデオや、これから使用する戦略を説明するこのチャンネルの他のビデオをまだ見ていない場合は、最初にチェックすることを強くお勧めします。これらのビデオはサポートとレジスタンスのレベル、ローソク足のパターンをカバーしており、このビデオでのアプローチを理解するための強固な基盤を提供します。あなたの便宜のために、ビデオの説明にいくつかのリンクを含めます。

さらに、興味がある方は、説明に記載されているリンクから、この戦略のバックテストに使用している Python コードをダウンロードできます。このコードを使用すると、後に従って結果を自分で調べることができます。

ここで、私たちのチャンネルを初めて利用する人、またはチャンネルに参加したばかりの人のために簡単にまとめてみましょう。マーチンゲール法では、負けた取引を終了するたびにポジション サイズを 2 倍にします。このアプローチの背後にある考え方は、1 回の大きな勝利で以前の損失を取り戻すことです。前回のビデオでは、マーチンゲール法を説明し、買いポジションと売りポジションの間でランダムに選択する完全にランダムな取引戦略に適用しました。

このビデオでは、別のアプローチを採用しています。マーチンゲール法を勝利のトレーディング戦略に適用していきます。私たちの戦略には、サポートとレジスタンスのレベル、および潜在的なトレンド反転を示す特定のローソク足パターンを特定することが含まれます。サポートまたはレジスタンスレベルに近いローソク足パターンを検出すると、それに応じて取引を実行します。ストップロスとテイクプロフィットの値は、テイクプロフィット/ストップロス比と呼ばれる比率に基づいて決定されます。

ここで、この戦略の結果は以前のビデオですでにテストされており、プラスのリターンが示されていることに注意することが重要です。ここでの目的は、この戦略にマーチンゲール法を追加することで利益をさらに増やすことができるかどうかを確認することです。

さて、Python コードを見てみましょう。まず、このビデオ用に 2003 年から 2021 年までの EUR/USD の日次データをロードしてクリーンアップします。次に、データ フレームの末尾を出力して、データ フレームが正しくロードされているかどうかを確認します。

次に、プログラムで使用するサポート レベルとレジスタンス レベルを検出する関数があります。これらの機能の詳細な説明が必要な場合は、以前のビデオを参照してください。

「is_engulfing」、「is_star」、「close_to_resistance」または「close_to_support」レベルと呼ばれる他の機能もあります。これらの関数は、特定のローソク足パターンを識別し、サポート レベルまたはレジスタンス レベルに近いかどうかを判断するのに役立ちます。これらのパターンは、取引シグナルを生成するために使用されます。

信号生成セルでは、検出したキャンドル パターンに基づいて信号を生成します。弱気の巻き込みパターンまたは抵抗レベルに近いその他の売りシグナルを見つけた場合、それを売りシグナルとみなし、データ フレームのシグナル列に値 1 を割り当てます。同様に、サポートレベルに近い強気の巻き込みパターンまたはその他の買いシグナルを見つけた場合、それを買いシグナルとみなし、シグナル列に値 2 を割り当てます。他のすべての場合、信号値は 0 で、信号がないことを示します。

ここで、戦略をバックテストするために backtesting.py パッケージを含めることができます。データ フレーム内の各行の信号値を返す「signal」という関数を定義します。この関数は、backtesting.py モジュールの戦略クラスを継承する「CandleStrategy」と呼ばれるカスタム クラス内で使用されます。

CandleStrategy クラスでは、取引ポジションのサイズを 0.05 に初期化します。これは、保有株式の 5% に相当します。シグナルを受信するたびにこのポジションサイズで取引します。

シグナル値が 1 (売りシグナル) の場合、オープンポジションがあるかどうかを確認します。その場合、既存のポジションをクローズし、ポジションサイズをゼロに設定します。次に、前に定義したポジション サイズで新しいショート ポジションを入力します。

一方、シグナル値が 2 (買いシグナル) の場合は、同様のプロセスに従います。オープンポジションがあるかどうかを確認し、必要に応じてクローズし、事前定義されたポジションサイズで新しいロングポジションを入力します。

次に、テイクプロフィットとストップロスのレベルを定義します。テイクプロフィットレベルは、エントリー価格にテイクプロフィット/ストップロス比率を乗算して計算されます。ストップロスレベルは、エントリー価格にテイクプロフィット/ストップロス比の負の値を乗算して計算されます。これらの値により、テイクプロフィットレベルがストップロスレベルよりもエントリー価格から遠く離れていることが保証されます。

最後に、CandleStrategy クラスを使用してバックテストを実行し、結果を出力します。トータルリターン、日次平均リターン、最大ドローダウン、実行された取引数など、さまざまなパフォーマンス指標を計算します。

それでは、バックテストを実行して結果を分析してみましょう。

バックテストを実行した後、結果を観察できます。トータルリターン、日次平均リターン、最大ドローダウンは、戦略のパフォーマンスを評価するための重要な指標です。

私たちの場合、トータルリターンは 256.17% となり、初期投資が 2 倍以上になったことを意味します。 1 日あたりの平均リターンは 0.04% であり、バックテスト期間を通じて一貫してプラスのリターンがあったことを示しています。最大ドローダウンは 10.98% で、これはピークからその後の最低点までの資産曲線の最大の低下を表します。

これらの結果は、マーチンゲール法と組み合わせた当社の勝利のトレーディング戦略が、テスト期間中に利益を上げてきたことを示しています。ただし、過去のパフォーマンスは将来の結果を示すものではないことに注意することが重要であり、この戦略はライブ取引で使用する前に徹底的に評価および検証する必要があります。

結論として、マーチンゲール法を勝利のトレーディング戦略と組み合わせると、戦略全体の収益性を潜在的に高めることができます。ただし、大きなドローダウンの可能性やポジションサイズの複数回の倍増を維持するのに十分な資本の必要性など、関連するリスクを慎重に検討することが重要です。

このビデオにご参加いただきありがとうございます。このビデオが有益で役立つものであると感じていただければ幸いです。ご質問やご提案がございましたら、以下のコメント欄に残してください。さらに多くの取引戦略やチュートリアルをご覧になるには、「いいね」を押してチャンネル登録することを忘れないでください。楽しい取引を!

Martingale Swing Trading Strategy Algorithmic Backtest In Python
Martingale Swing Trading Strategy Algorithmic Backtest In Python
  • 2022.02.10
  • www.youtube.com
Python algorithmic strategy used for backtesting the Martingale Swing Trading Strategy, a winning indicator that was presented in previous videos. Martingale...
 

アルゴリズム取引のためのマーチンゲール取引戦略バックテスト



アルゴリズム取引のためのマーチンゲール取引戦略バックテスト

今日は、損失取引を補うためにあらゆる取引戦略に組み込むことができるマーチンゲール手法について説明します。 Python を使用してこの方法をバックテストし、マーチンゲールを実装する際の利点とリスクを詳しく調べます。

ポケットに 20 ドルを持ってカジノに入り、色だけに賭けてルーレットをプレイすることに決めたとしましょう。赤か黒のどちらかに 1 ドルを賭けます。赤への最初の賭けが負けると、19 ドルが残ります。次のラウンドでは、以前は負けた賭けだったので、賭け金を 2 倍の 2 ドルにします。この賭けも負けると、17 ドルが残ります。以前の損失を補うことを目的として、負けるたびに賭け金を 2 倍にし続けます。最終的には、以前の損失をカバーし、わずかな利益を追加した勝ちの賭けが得られます。この例では、最終的に合計 21 ドルとなり、最初の金額よりわずかに多くなります。負けた後に賭け金を 2 倍にするこのアプローチは、マーチンゲール アプローチとして知られています。

当初、マーチンゲール法は有望に見え、迅速かつ多額の利益が得られる印象を与えることができます。ただし、このアプローチに伴うリスクを理解することが重要です。この方法とそのリスクをより深く理解するために、モンテカルロ アプローチを使用して戦略をバックテストします。このアプローチでは、テクニカル指標やカスタム予測を完全に無視して、乱数を使用してポジションの買いまたは売りのシグナルを生成します。信号は一様ランダム分布のみに基づいています。

バックテストを実装するには、Python コードを作成します。まず、データ操作に必要なライブラリ (パンダなど) をインポートします。データをロードしてクリーンアップし、取引高がゼロの行を削除します。データを準備した後、numpy モジュールのランダム関数を使用してランダム信号を生成します。各ローソク足に対して、0 から 1 までの乱数を生成します。数値が 0.5 未満の場合は売りシグナル (1) を割り当て、0.5 を超える場合は買いシグナル (2) を割り当てます。

次に、バックテスト ライブラリの戦略クラスを継承する「MyStrategy」という戦略クラスを定義します。初期位置サイズは 10 単位に設定されます。また、マーチンゲール法に基づいて変化するポジション サイズを追跡するための変数「my_size」も定義します。ポジティブなシグナルが生成され、オープンな取引がない場合は、マーチンゲール法に従い、「my_size」に 2 を乗算した値に等しいポジション サイズで新しい取引をオープンします。クローズされた取引があり、最後の取引が利益を上げていた場合は、ポジション サイズを初期サイズにリセットします。これにより、取引に勝利した後、最初のポジションサイズに戻ることが保証されます。買いまたは売りのシグナルが生成され、オープン取引がない場合は、最後の終値を基準にしてストップロスとテイクプロフィットのレベルを設定し、対応する取引を実行します。

戦略を定義したら、初期資金 10,000 ドルを手数料なしでバックテストを実行します。バックテストの統計ではリターンが-4.8%となっており、損失を示しています。資本プロットから、この戦略は当初はある程度の利益を上げていましたが、ある時点から減少し始めたことがわかります。シグナルがランダムであるため、予想どおり、勝率は 50% に近くなります。合計取引数は100です。

さらに調査するために、ストップロスとテイクプロフィットのレベルを 400 pips に変更し、バックテストを再実行します。ただし、この調整では問題は解決されません。資本の減少は、一連の取引で負けた後、ポジションサイズを倍増させ続けるのに十分な資金がないことが原因です。これに対処するために、初期ポジション サイズを 5 に減らし、ストップロスとテイク プロフィット レベルを 300 ピップスに設定します。これらの調整を行った後、バックテストを再実行します。更新された戦略では -0.7% の収益が得られ、以前のバージョンと比較して損失が小さいことがわかります。ただし、資本プロットは、ペースは遅いとはいえ、依然として減少傾向を示しています。勝率は50%近くを維持しており、合計トレード数はまだ100回です。

これらの結果から、ポジションサイズ、ストップロス、テイクプロフィットのレベルを調整しても、このランダムシグナルシナリオではマーチンゲール法では収益性の高い結果が得られないことがわかります。資本の減少は、大幅なドローダウンの潜在的なリスクと取引口座が枯渇する可能性を示しています。

このバックテストはランダムな信号を想定して実施されたことに注意することが重要です。現実の取引では、通常、テクニカル分析またはファンダメンタルズ分析に基づく戦略が取引シグナルの生成に使用されます。これらの戦略は、ランダムなシグナルに依存するのではなく、市場データに基づいてパターン、傾向、または機会を特定することを目的としています。このような場合、マーチンゲール法は適切ではないか効果的ではない可能性があります。

さらに、マーチンゲール法には高いリスクが伴います。連敗の後には連勝が続き、トレーダーが損失を取り戻すことができると想定しています。しかし、実際には、負けたトレードの後に勝ちトレードが続くという保証はなく、常に連敗する可能性があります。損失が発生するたびにポジションサイズを 2 倍にすると、特に市場の状況が不利または不安定な場合、すぐに重大な損失と口座の枯渇につながる可能性があります。

マーチンゲール手法は、迅速な回復と利益の可能性があるため魅力的に見えるかもしれませんが、関連するリスクを考慮し、取引戦略への適合性を慎重に評価することが重要です。厳格なストップロスレベルの設定、適切なポジションサイジングの維持、取引アプローチの多様化などのリスク管理手法を導入することは、関連するリスクを軽減するのに役立ちます。

要約すると、マーチンゲール法は、特にランダム信号で使用される場合、危険な戦略になる可能性があります。潜在的な利益とそれに伴うリスクの両方を考慮して、あらゆる取引戦略を徹底的にテストして評価することが重要です。

Martingale Trading Strategy Backtesting For Algorithmic Trading
Martingale Trading Strategy Backtesting For Algorithmic Trading
  • 2022.02.03
  • www.youtube.com
Testing the Martingale trading strategy for algorithmic trading in python, I hope you'll enjoy it.Are you interested in algorithmic trading and looking for a...
 

Python での移動平均取引戦略のバックテスト



Python での移動平均取引戦略のバックテスト

より複雑なモデルを優先して、単純な戦略が無視されることがよくあります。ただし、シンプルさの力を過小評価すべきではありません。今日は、複雑な取引システムに対抗してプラスの利益を生み出す簡単な方法を紹介します。シンプルなルールの利点は、Python を使用してアルゴリズム取引を簡単に自動化できることです。この戦略をさまざまな通貨でバックテストして、収益性を確保できます。

この単純な戦略の詳細を見てみましょう。まず、指標として 200 日移動平均曲線を検討します。ローソク足が曲線の上にある場合、上昇トレンドを示し、買いポジションを示唆しています。逆に、ローソク足が移動平均曲線を下回っている場合は、下降トレンドのシグナルであり、売りポジションを意味します。

買いポジションのエントリーポイントを決定するために、先行するローソク足を調べます。現在のローソク足の最低値と、前のローソク足の最低値を比較します。現在のローソク足の安値がこれらすべての以前の値を下回っている場合、買いポジションのエントリーポイントが特定されています。同じ概念が逆方向の売りポジションにも当てはまります。

この戦略は単純そうに見えますが、特有の課題も伴います。考慮すべき最初のパラメータは、移動平均の長さです。 200、100、または別のものにする必要がありますか?これは、リターンを最大化するために、特定の通貨ペアでのバックテストを通じて微調整できます。もう 1 つのパラメータは、考慮する先行するローソク足の数です。 7、8、10、または 20 のローソク足を分析する必要がありますか?さまざまな値を実験することで、戦略のパフォーマンスへの影響を評価できます。

この指標部分は比較的単純ですが、戦略を効果的にするには、それを取引管理アプローチと組み合わせる必要があります。これには、ストップロス値とテイクプロフィット値の定義が含まれます。これらの値を設定するには 2 つのオプションがあります。市場の平均トゥルー レンジ (ATR) に関連付けることも、すべての取引に固定値を使用することもできます。確実にプラスの利益を得るには、適切な取引管理アプローチを選択することが重要です。さらに、ATR に基づいてストップロス値を調整するトレーリング ストップロスを使用することもできます。

コードでは、これらのパラメーターのさまざまな組み合わせを実験して、最適な設定を見つけ、戦略のパフォーマンスを評価できます。シンプルな戦略であるにもかかわらず、考慮すべきパラメータは比較的多くあります。

この戦略を Python で実装するには、Jupyter Notebook ファイルを使用します。データをロードし、pandas-technical-analysis モジュールを使用して指数移動平均 (EMA) と ATR 計算を適用します。次に、EMA 信号と高低信号を生成する関数を定義します。 EMA 曲線を使用してデータをプロットし、すべてが正しく機能していることを視覚的に確認します。

次に、EMA シグナルと高低シグナル関数をデータ フレームに適用し、買いポジションまたは売りポジションのシグナルを生成します。プロットされたシグナルを調べることで、トレンドとエントリー ポイントを特定する際のその精度と有効性を検証できます。

戦略をテストするために、シグナルを使用して買いポジションまたは売りポジションを決定し、ATR または固定比率に基づいてストップロスとテイクプロフィットの値を設定する関数を定義します。 2003 年から 2021 年までのユーロ米ドル 4 時間足チャートでこの戦略をバックテストすると、約 29% のプラスのリターンが示されました。

ただし、株式曲線を評価し、この戦略がトレンド市場ではうまく機能する可能性がある一方で、価格が水平に変動している期間には苦戦する可能性があることを理解することが重要です。 ATR ベースの値の代わりに固定値を使用するなど、さまざまなストップロスとテイクプロフィットの構成を試すことで、戦略のパフォーマンスを分析し、それに応じて適応させることができます。

結論として、最も単純な戦略であっても、その有効性を確保するにはパラメーターと取引管理アプローチを慎重に検討する必要があります。この戦略は移動平均などの基本的な指標に依存していますが、適切な取引管理手法と組み合わせることで、収益性の高い取引シグナルを生成することができます。

戦略を実装してバックテストを実施したら、そのパフォーマンス指標を評価することが重要です。考慮すべき重要な指標としては、総取引数、勝率 (収益性の高い取引の割合)、取引ごとの平均利益、最大ドローダウン (最大の山から谷までの下落)、およびリスク リワード レシオなどがあります。

これらの指標を分析することで、戦略が期待を満たしており、リスク許容度に合致しているかどうかを判断できます。どの戦略も絶対確実というわけではなく、取引には常にリスクが伴うことを覚えておくことが重要です。したがって、長期的な成功には、適切なリスク管理と投資の多様化が不可欠です。

さらに、戦略に対して堅牢性テストを実行することをお勧めします。これには、さまざまな期間、通貨ペア、資産クラスなど、さまざまな市場条件下でのパフォーマンスの評価が含まれます。そうすることで、戦略の適応性を評価し、その収益性が特定のシナリオに限定されないことを確認できます。

さらに、この単純な戦略の限界についても考慮する価値があります。市場の微妙なニュアンスをすべて捉えられない場合や、ボラティリティが高いときや突然の価格変動の時期には最適に機能しない場合があります。そのような場合、パフォーマンスを向上させるために、より洗練された取引システムまたは追加のインジケーターが必要になる場合があります。

最後に、市場状況の変化に応じて戦略を継続的に監視し、適応させることが重要です。パフォーマンスを定期的に確認し、必要な調整を行い、市場動向やニュースに関する情報を常に入手することが、戦略の長期的な実行可能性に貢献します。

トレーディングの成功は、明確に定義された戦略、規律ある実行、継続的な学習と適応の結果であることを忘れないでください。あなたの取引の成功をお祈りします。

 

Python でのアルゴリズム取引のトレーリング ストップ バックテスト



Python でのアルゴリズム取引のトレーリング ストップ バックテスト

皆さんこんにちは。このビデオへようこそ。今日は、アルゴリズム取引でストップロスを実装するさまざまな方法を検討します。具体的には、数値プログラムでコーディングすることで取引ボットに簡単に組み込むことができるストップロス手法に焦点を当てます。

ストップロス値を決定するにはさまざまな方法がありますが、一部の方法はプログラムに組み込むのがより複雑であることに注意することが重要です。このビデオでは、サポートとレジスタンスのレベル、および他のビデオで以前に説明したローソク足パターンを使用して戦略をバックテストします。ただし、4 つの異なるケースを考慮してストップロス値を変更します。

1 つ目の方法では、すべての取引に対してトレーダーによってあらかじめ決められた一定のストップロス ディスタンスを使用します。買いポジションに関係なく、ストップロス距離は変わりません。

2 番目の方法はより動的で、平均真の範囲 (ATR) を利用します。ここで、ストップロス距離は ATR に直接関係しており、特定のポジションでの市場のボラティリティに応じて変化します。

3 番目の方法は、固定距離のトレーリングストップロスです。これは一般的に使用されるトレーリング ストップロス戦略であり、すべてのポジションで同じ距離が維持され、トレーリング ストップロスとして機能します。

4 番目で最後の方法は、トレーリング ストップロスで、取引ポジションが実行された瞬間の平均真のレンジを考慮します。これは、正確な瞬間の市場のボラティリティを反映する ATR に基づいてストップロス距離が選択されることを意味します。

要約すると、ストップロス値を定義するこれら 4 つの異なる方法を使用して同じ戦略をテストします。ストップロス値の選択はテイクプロフィット値にも影響を与えることに注意してください。ほとんどの場合、テイクプロフィットの値は、テイクプロフィット距離とストップロス距離の比率に基づいて決定されます。

ここで、Jupyter Notebook ファイルを詳しく見て、これらのメソッドがどのように実装されているかを見てみましょう。このファイルは、必要なモジュールをインポートし、2003 年から 2021 年までの EUR/USD 通貨ペアの価格データを含む CSV ファイルをロードすることから始まります。データをクリーンアップし、平均真の範囲 (ATR) 列を追加し、サポートおよびサポートのための関数を定義します。抵抗レベルとローソク足パターン。

また、飲み込みパターンやサポートレベルとレジスタンスレベルへの近さをチェックする関数も紹介します。これらの関数は、サポートまたはレジスタンスレベルに近いローソク足パターンに基づいて戦略を構築するのに役立ちます。データ フレームにシグナル列を追加し、シグナルを弱気、強気、またはシグナルなしとして分類します。

戦略をバックテストするには、バックテスト モジュールを利用し、トレーダーが手動で設定した固定のストップロスとテイクプロフィット距離を含む最初のストップロス方法を定義します。現金 10,000 ドルから開始し、リターン、勝率、最良および最悪の取引、最大ドローダウンなどのバックテストの結果を取得します。

次に、ATR を利用してストップロスとテイクプロフィットの距離を定義する 2 番目の方法を実装します。 ATR値に基づいて距離を調整する要素を導入し、戦略をバックテストします。結果を前の方法と比較し、収益やその他のパフォーマンス指標の違いを観察します。

次に、3 番目の方法を実装します。これは、固定距離のトレーリング ストップロスです。ここでは、最初のストップロス距離を指定するだけでよく、それに応じて後続のストップロスが調整されます。 EUR/USD ペアの 500 ピップスの固定距離を使用して戦略をバックテストします。

最後に、結果を分析すると、固定距離を使用したトレーリング ストップロス法が約 131% という最高のリターンを生み出すことがわかりました。他の方法でも有利なリターンが得られますが、この場合はトレーリングストップロス方法の方が優れたパフォーマンスを示します。

結論として、私たちは 4 つの異なるストップロス方法を使用して同じ戦略をテストしました。それぞれが異なる利点と考慮事項を提供します。ストップロス方法の選択は、最終的にはトレーダーの好みと特定の市場状況によって決まります。

一定のストップロス方式により、実装が単純かつ容易になります。市場の状況に関係なく、すべての取引にわたって一貫したリスク管理が可能になります。ただし、ボラティリティレベルの変化に効果的に適応できない可能性があり、ボラティリティが高い期間ではストップロス距離が広くなり、ボラティリティが低い期間ではストップロス距離が狭くなる可能性があります。

ATR ベースのストップロス手法は、市場のボラティリティに適応するという問題に対処します。ボラティリティの尺度として ATR を使用することにより、ストップロス距離は現在の市場状況に合わせて動的に調整されます。これは、ボラティリティが高いときに大きな損失を防ぐのに役立ち、ボラティリティが低いときにはより多くの余裕を提供します。ただし、ボラティリティが高い時期にはストップロス距離が広くなり、ストップアウトの頻度が高くなる可能性があります。

固定距離トレーリング ストップロス手法は、トレーリング ストップロスの利点と固定距離のシンプルさを組み合わせたものです。取引に有利に動くときに価格の後ろにストップロスを追跡することで、潜在的な利益の最大化が可能になります。この方法は、より大きな利益を獲得できるトレンド市場で特に役立ちます。ただし、固定距離では非常に不安定な状況では十分なバッファーが提供されない可能性があるため、急激な価格反転を効果的に防ぐことはできない可能性があります。

ATR ベースのトレーリング ストップロス メソッドは、ATR ベースのメソッドとトレーリング ストップロスの利点を組み合わせたものです。取引エントリー時に ATR を考慮することで、その時点の市場のボラティリティに基づいてトレーリングのストップロス距離を調整します。これにより、リスク管理に対するより適応的で即応性の高いアプローチが提供されます。突然の反転に対する保護を提供しながら、より大きなトレンドを捉えるのに役立ちます。ただし、ボラティリティが高い場合にはストップロス距離が広くなり、ストップアウトの頻度が高くなる可能性があります。

トレーダーがストップロス方法を選択するときは、リスク許容度、取引スタイル、市場状況を慎重に考慮することが重要です。さまざまな方法のバックテストとパフォーマンスの分析は、情報に基づいた意思決定を行うのに役立ちます。さらに、リスク管理はストップロス注文だけに依存するのではなく、ポジションのサイジング、分散、ポートフォリオ全体の管理も考慮する必要があります。

絶対確実なストップロス方法はなく、損失が発生する可能性があることに注意してください。取引を成功させるには、適切なリスク管理と市場状況の継続的な監視が不可欠です。

Trailing Stop Backtest For Algorithmic Trading in Python
Trailing Stop Backtest For Algorithmic Trading in Python
  • 2021.11.27
  • www.youtube.com
This video tests the Stop Loss VS Trailing Stop methods for Algorithmic Trading using python. Backtests are applied to one trading strategy showing the diffe...
 

Python で自動化された RSI ダイバージェンス |アルゴリズム取引



Python で自動化された RSI ダイバージェンス |アルゴリズム取引

皆さんこんにちは。このビデオへようこそ。今日はRSIダイバージェンスについて説明し、取引でこの指標を使用したさまざまな戦略を探っていきます。本題に入る前に、このビデオで使用されている Jupyter Notebook ファイルにアクセスできるダウンロード リンクを説明に記載しました。

まず、価格と RSI の両方の極小値と極大値を検出できるコードを記述する必要があります。これらの点は、グラフ上で紫色の点としてマークされています。ここで使用されるアルゴリズムは、ローソク足の高値が両側の 5 つの隣接するローソク足よりも高い場合に、その高値を最大値として識別します。同様に、ローソク足の値が左側と右側の 5 本のローソク足よりも低い場合、そのローソク足の値は最小値とみなされます。極値点の検出の好みに基づいて、これらの数値を調整できます。

次に、検出された価格と RSI の最小値と最大値を線形の傾きに当てはめます。これには、これらの点を通過する最適な直線を見つけることが含まれます。最終的には 2 つの異なる傾きが得られます。1 つは価格 (緑) で、もう 1 つは RSI (紫) です。これらの傾きは、それぞれの指標のトレンド方向を表します。

その後、価格と RSI の傾きを比較して、乖離があるかどうかを判断できます。上昇トレンドでは、両方の傾きがプラスになる必要があり、価格の安値がより高く、RSI の高値がより高いことを示します。逆に、下降トレンドでは両方の傾きがマイナスになるはずです。価格の正の傾きと RSI の負の傾き、またはその逆など、傾きの符号が異なる場合は、発散を示します。

発散を分析するにはさまざまなアプローチがありますが、このビデオでは 2 つの方法を検討します。最初の方法では、多項式回帰を使用して複数の極値点をフィッティングすることにより、一度に 3 つ以上の点を考慮することができます。 2 番目の方法は、価格と RSI の最後の 2 つの最小値と最大値を比較することに焦点を当てています。これらの点の違いを比較することで、相違点を特定できます。

RSI ダイバージェンスを使用した戦略はマニュアル取引でよく議論されますが、通常は連続する 2 つのポイント間のトレンドに焦点を当てています。このビデオでは、勾配フィッティングと多項式回帰を利用して複数点の同時解析を可能にする数値的アプローチを紹介します。

ビデオ全体を通じて、Jupyter Notebook を使用してこれらの分岐メソッドを Python でコーディングします。提供された Notebook ファイルは、必要なライブラリをインポートし、CSV ファイルからローソク足データを読み取り、RSI を計算し、価格と RSI の両方のピボット ポイントを検出する関数を定義します。これらの関数は、各ローソク足をピボット高、ピボット安値、両方、またはどちらでもないとして分類します。

ビデオが終わるまでに、RSI ダイバージェンスと、これらの戦略を取引に実装する方法を明確に理解できるようになります。このコンテンツが役立つと思われる場合は、ビデオを「いいね」してチャンネルをサポートすることをお勧めします。あなたのフィードバックは私たちにとって貴重なものですので、お気軽にコメントを残してください。

ここで、Jupyter Notebook ファイルを詳しく見て、これらの概念を Python でコード化する方法を見てみましょう。

中断したところから継続して、データ フレームに「ピボット」列を追加しました。これにより、各ローソク足がピボット高値、ピボット安値、その両方、またはどちらでもないとして分類されます。それでは、コードの次のステップに進みましょう。

次に、x 座標と y 座標を指定して 2 点間の傾きを計算する「get_slope」という関数を定義します。この関数は、価格と RSI データの傾きを計算するために使用されます。

その後、データ フレームとピボット カテゴリ (ピボット ハイまたはピボット ロー) をパラメーターとして受け取る「fit_slope」という別の関数を定義します。この関数は、指定されたカテゴリに基づいてピボット ポイントを識別し、「get_slope」関数を使用してそれらのポイントに線形の傾きを当てはめます。近似された直線の傾き値を返します。

次に、これらの関数を使用して、価格と RSI データの傾きを計算します。データ フレームに「price_slope」と「rsi_slope」という 2 つの新しい列を作成します。 「price_slope」列については、データ フレームとピボット カテゴリをパラメーターとして使用して「fit_slope」関数を呼び出します。 RSI データに対して同じプロセスを繰り返し、RSI ピボット ポイントの傾きを計算し、結果を「rsi_slope」列に保存します。

この時点で、価格と RSI データの両方の傾きを取得しました。これらの傾きを比較してトレンドの方向を判断できるようになりました。 「トレンド」と呼ばれる別の列をデータ フレームに追加します。これは、トレンドが上昇しているか、下降しているか、または未定義であるかを示します。

傾向を判断するには、price_slope 列と rsi_slope 列の符号を確認します。両方の傾きが正の場合は上昇傾向を示しているため、トレンド列に値「Up」を割り当てます。両方の傾きが負の場合は、下降傾向を示しているため、トレンド列に値「Down」を割り当てます。傾きの符号が異なる、または傾きの 1 つがゼロであるその他のすべてのケースでは、傾向列に値「未定義」を割り当てます。

トレンド情報が利用可能になったので、価格と RSI データの間の乖離をチェックできるようになりました。 「発散」と呼ばれる別の列をデータ フレームに追加します。これは、発散が存在するかどうかを示します。

発散をチェックするために、price_slope 列と rsi_slope 列の符号を比較します。符号が反対の場合は、発散を示します。このような場合、発散列に値「発散」を割り当てます。符号が同じであるか、傾きの 1 つがゼロの場合、発散はなく、発散列に値「発散なし」を割り当てます。

最後に、結果のデータ フレームを印刷して、各ローソク足の計算された傾き、トレンドの方向、発散を確認できます。

全体として、コードは次の手順を実行します。

  1. 必要なライブラリをインポートし、ヘルパー関数を定義します。
  2. ローソク足データを読み取り、RSI を計算します。
  3. ピボット列を追加して、各ローソク足をピボット高値、ピボット安値、その両方、またはどちらでもないとして分類します。
  4. ピボット ポイントに基づいて、価格と RSI データの傾きを計算します。
  5. 傾きの兆候に基づいてトレンドの方向を決定します。
  6. 傾きの兆候に基づいて、価格と RSI データの間の乖離をチェックします。
  7. 計算された傾き、トレンド方向、発散を含む結果のデータ フレームを印刷します。

このコードは、RSI の乖離と価格トレンドとの関係を分析する方法を提供し、トレーダーが取引の機会を特定できるようにします。

RSI Divergence Automated In Python | Algorithmic Trading
RSI Divergence Automated In Python | Algorithmic Trading
  • 2021.11.12
  • www.youtube.com
The RSI Divergence Detection is programmed in python as an automated indicator for algorithmic trading, the Jupyter notebook file is available from the link:...
 

Pythonで自動化された価格トレンドチャネル



Pythonで自動化された価格トレンドチャネル

みなさん、こんにちは。今日はこのビデオにご参加いただきありがとうございます。価格変動チャネルを検出する Python のアルゴリズムを紹介できることを嬉しく思います。以下の説明のリンクからコードを Jupyter Notebook ファイルとしてダウンロードできます。

まず最初に、このアイデアを提案してくれたコメントセクションの M 氏または夫人に敬意を表します。 1ヶ月以上お待たせしてしまい大変申し訳ございませんでした。このビデオが皆さんの失望にならないことを願っています。

始める前に、このチャンネルの目的を明確にしましょう。私たちの目標は教育コンテンツを提供することなので、単にダウンロードして使用できるプログラムをブラック ボックスとして提供するわけではありません。代わりに、思考プロセスとプログラムがどのように構築されたかを説明することを目的としています。このビデオが終わるまでに、ここで紹介されているものからインスピレーションを受けて独自のアルゴリズムを構築し、独自の拡張機能を追加できるようになります。

ただし、市場のような動的で非線形の環境に数値モデルを適用する場合は、その限界を認識することが重要です。価格の傾向と予測はまだ未解決の研究分野であり、最良のアプローチを見つけるために継続的な研究が行われています。市場は非常にダイナミックであり、トレンドとその変化の速度は時間の経過とともに変化する可能性があります。したがって、価格変動の予測に固有の制限と複雑さを受け入れてください。

それでは、アルゴリズムについて詳しく見ていきましょう。私たちが提示するアルゴリズムは、このチャネルを通じて収集された単純な情報と私たちの想像力に基づいています。このアプローチには、特定のローソク足または日付に自分自身を置き、特定の数のローソク足について時間を遡ることが含まれます。

この時間を等しい部分または時間枠に分割します。各ウィンドウで、最大値と最小値として知られる最高価格ポイントと最低価格ポイントを特定します。すべての時間ウィンドウに対してこのプロセスを繰り返し、最小点と最大点を別々の 1 次多項式の当てはめ (直線) に当てはめます。

ただし、これらの傾きはポイントを通過するため、必ずしも価格を包み込むわけではありません。これに対処するには、これらの傾きの切片値を改善する必要があります。これにはさまざまな方法があります。 1 つのアプローチは、時間ウィンドウの中央に最も近い最小点やウィンドウ内で見つかった最高点と最低点などの特定の点を曲線が通過するように切片を調整することです。

考慮すべきもう 1 つの側面は、時間枠の長さです。好みに応じて、バック キャンドルの数にさまざまな値を選択できます。たとえば、現在のローソク足から 30 バープラスマイナス 20 バーを取得して、プログラムがその範囲内を歩き回れるようにすることができます。次に、プログラムはさまざまな傾きを評価し、2 つの傾きの間で最も平行な状況を提供するローソク足の数を返し、チャネルの検出を示します。

ビデオの説明内のリンクからダウンロードできる Jupyter Notebook ファイルが提供されています。このファイルには、アルゴリズムを実装するための Python コードが含まれています。まず、pandas ライブラリをインポートし、2003 年から 2021 年のユーロ対ドルのローソク足データを含む CSV ファイルからデータをロードします。

次に、バックローソク足の数で定義された時間枠内で最大値と最小値を検索します。ウィンドウを小さなウィンドウにスライスし、各ウィンドウ内の最大点と最小点を見つけます。これらの点は numpy 配列に格納されます。

最小値と最大値を取得した後、numpy Polyfit 関数を使用して点を 1 次多項式の直線にフィットさせます。傾きと切片を含む結果は変数に保存されます。

傾きを視覚化するには、ローソク足チャートをプロットし、傾きに対応する線を追加します。この段階では、傾斜が価格を完全に包み込んでいない可能性がありますが、適度なフィット感が得られます。

適合性を向上させるために、傾きの切片を変更できます。 1 つのアプローチは、各時間枠内の最高点と最低点を通過するように切片を調整することです。時間枠内の最高点と最低点を計算し、それに応じて傾きの切片を更新します。

最適なチャネルを決定するために、バックローソク足の数のさまざまな値を繰り返し、2 つの傾き間の平行度を評価します。 2 つの傾斜間の角度を計算し、それが事前定義されたしきい値内にあるかどうかを確認します。そうであれば、それを有効なチャネルとみなし、さらなる分析のためにバックローソク足の数と角度を保存します。

最後に、ローソク足チャートをプロットし、チャネルに対応する線を重ね合わせることで、検出されたチャネルを視覚化できます。これにより、特定された価格変動チャネルが視覚的に表現されます。

このアルゴリズムは簡略化されたアプローチであり、すべてのタイプの価格変動チャネルを捕捉できるわけではないことに注意することが重要です。市場は複雑であり、このアルゴリズムの範囲を超えるさまざまなパターンやダイナミクスが存在する可能性があります。ただし、このアルゴリズムはチャネル検出の開始点として機能し、個々の要件や好みに基づいて拡張またはカスタマイズできます。

Jupyter Notebook ファイルをダウンロードしてコードを詳しく調べることをお勧めします。さまざまなパラメーターを試し、さまざまなデータセットでテストし、そのパフォーマンスを確認してください。ニーズやアイデアに合わせてアルゴリズムを自由に変更および強化してください。

このビデオと付随するコードが、独自のチャネル検出アルゴリズムを開発するための洞察とインスピレーションを提供することを願っています。重要なのは、基礎となる概念を理解し、それを特定のニーズや市場状況に適応させることであることを忘れないでください。

ご覧いただきありがとうございます。フィードバックやご質問をお待ちしております。コーディングを楽しんでください!

Price Trend Channels Automated In Python
Price Trend Channels Automated In Python
  • 2021.10.30
  • www.youtube.com
This video is about detecting price trend and price channels and how to automate this process in Python. The algorithm is presented and explained then the co...