多レベル 利得率戦略

作者: リン・ハーン優しさ, 作成日:2019-09-25 16:24:31, 更新日:2023-11-07 20:44:48

img

概要

スタンリー・クロールは,彼の本"フューチャー取引戦略に関するクロール"で,彼の利益を得る方法は3つの部分に分かれると述べています. 目標価格に達すると,ポジションの3分の1が閉鎖されます. 長期的なレジスタンスとサポート価格範囲が破られると,ポジションの3分の1が閉鎖されます. 最後の3分の1はストップ損失が引き起こすまでトレンドに従います.

この記事で共有される戦略は,この原則に基づいています. 移動平均線はトレンドの方向として使用されます. 閉じる価格,最高価格,最低価格の間の関係は,ポジションを開くシグナルとして使用されます. 価格トレンドが著しく変化していないという前提で,パーセントに応じてプロアクティブにバッチで利益を得ます.

なぜストップ・ロストで 利益を得るのか?

トレーディングの世界には古い語があります. "誰もがポジションを開く方法を知っているが,プロだけがポジションを閉める方法を知っている". この言葉からわかるように,市場を脱出する方法は,取引の鍵となる要素です. なぜなら,ポジションを開くとき,市場のトレンドが始まっているかどうかを判断するだけです. しかし,一度市場に飛び込むと,トレンドが回転しているか否かを判断し,常にリスクをコントロールする必要があります. 私は多くのトレーダーが"ローラーコースター"市場を経験したと信じています. あなたは電車に飛び込み,小さな利益や損失さえ得ました.

簡単に言えば,閉店ポジションは,利益とストップロスの2つの状況以上のものではありません. 例えば,あなたが幸運であれば,価格が購入後上昇し始めます.この時点で,あなたは利益を取ることの問題を検討する必要があります.そうでなければ,私たちは単に"見"でお金を稼ぎ,正しい場所に利益を取らず,最終的にそれを失う可能性があります.あなたが幸運でない場合は,価格が購入後すぐに下がり始めます.この時点で,あなたはストップロスを考慮する必要があります.またはあなたはポジションを開く前にストップロスのオプションを検討する必要があります.そうでなければ,小さな損失は大きな損失を蓄積します.

統計的観点から見ると,ほとんどの損失ポジションは将来の市場でのコスト価格に戻ります. しかし,大きな逆転傾向の小さな確率に出くわす場合,あなたは以前の利益またはすべてのファンドを失う可能性があります. したがって,小売投資家にとって,私たちは大きな利益を得ることができます.私たちは小さな利益を得ることができます.私たちは小さな損失を演出することができますが,私たちは決して大きなお金を失うことはできません.一言で言えば:ストップ損失はあなたを生き続け,利益を取ることはあなたをより良く生きさせます.

戦略の論理

時には,直感的に利益を得るとき,市場価格の動きが大きくなり,少量の利益しか得られない場合もあります. 失敗した取引ではありませんが,メンタリティからの後悔があるでしょうので,この戦略は多レベルの利得取りの方法を使用します. つまり,浮動利益が5%に達すると,第一レベルのアクティブテイク・プロフィートモードがオンになります. 100%が浮動利益の最高点から引き上げられたら,利益を得て,ポジションを閉じます.浮動利益が10%に達すると,第二レベルのアクティブテイク・プロフィートモードがアクティブになります. 50%が浮動利益の最高点から引き上げられたら,利益を得て,ポジションを閉じます.浮動利益が20%に達すると,3レベルの利得取りはアクティブになります. 20%が浮動利益の最高点から引き上げられたら,浮動モードで利益を得て,ポジションを閉じます. この戦略は,大きな利益を得ることだけでなく,浮動利益の傾向も保護します.

  • 上部レールを定義する

  • 下のレールを定義する

  • 移動平均値を定義する

  • オープン・ロング・ポジション: 閉じる価格が上回りより高く,上回りが移動平均より高く

  • ショートポジション開設:閉場価格がローナーレールより低く,ローナーレールは移動平均より小さい

  • ロングポジション閉じる: 閉じる価格が下線より低く,閉じる価格が移動平均より低い

  • ショートポジション閉じる:閉じる価格は上線よりも高く,閉じる価格は移動平均よりも高くなります.

  • レベル1のロングポジションは,ポジションを開設した後の最高価格が,最初のレベルからの開始利益に掛ける開設価格よりも高く,最低価格が,ポジションを開設した後の最高価格から減算した浮動利益を,最初のレベルからの開始利益に掛ける引き金値よりも低く,またはそれに等しい.

  • レベル2のロングポジションは,ポジションを開設した後の最高価格が,オープニング価格を第2レベルの開始利益倍数で倍数した値よりも高く,最低価格が,ポジションを開設した後の最高価格を減算した変動利益を第2レベルのオフオフ利益引き金値で倍数した値よりも低く,または同等である.

  • レベル3のロングポジションは,ポジションを開設した後の最高価格が,オープニング価格を第3レベルの開始利益で掛け合わせた値よりも高く,最低価格が,ポジションを開設した後の最高価格をマイナスして浮動利益を第3レベルのプロフィートテイクトリガー値で掛け合わせた値よりも低く,またはそれと同等である.

  • レベル1ショートポジションは,ポジションを開設した後の最低価格が,開設価格を最初の開始利益レベルで掛け合わせた値よりも低く,最高価格が,ポジションを開設した後の最低価格をプラス浮動利益を第1レベルの開設利益引き金値で掛け合わせた値よりも高く,またはそれと同等である.

  • レベル2のショートポジションは,ポジションを開設した後の最低価格が,最初の価格を第2の開始利益値で掛け合わせた値よりも低く,最高価格が,ポジションを開設した後の最低価格と,変動利益を第2のレベルの開始利益値で掛け合わせた値よりも高く,または同等である.

  • レベル3のショートポジションは,ポジションを開設した後の最低価格が,オープニング価格を第3の開始利益レベルで掛け合わせた値よりも低く,最高価格が,ポジションを開設した後の最低価格を足して浮動利益を第3のレベルの開始利益値で掛け合わせた値よりも高く,または同等である.

  • ロングポジションストップ・ロース: 閉じる価格は,ストップ・ロスの因数に掛ける開設価格より小さいか同等である.

  • ショートポジションストップ・ロース: 閉じる価格が,ストップ・ロスの因数で掛けられた開設価格より小さいか同等である.

戦略コード

この戦略を FMZ Quant プラットフォームで実装できます.fmz.com> ログイン > ダッシュボード > 戦略ライブラリ > 新しい戦略 > 右上のドロップダウンメニューをクリックして,私の言語を選択し,戦略を書くことを開始し,下のコードのコメントに注意してください.

まず,戦略で使用する必要があるパラメータは,平均線長,ストップ損失範囲,取利益パラメータなど,テストデバッグと最適化を容易にするための外部パラメータとして定義されています.

/ / Define parameters
LENGTH := 100; // moving average parameter
STOP_LOSS := 3; // Stop Loss range

// Define the take profit parameter
STARTPER1 := 5; // Level 1 tracking take profit, start from profit reaches 5%
STOPPER1 := 100; // Level 1 tracking take profit, profit retracement 100% triggers it
STARTPER2 := 10; // Level 2 tracking take profit, start from profit reaches 10%
STOPPER2 := 50; // Level 2 tracking take profit, profit retracement 50% trigger it
STARTPER3 := 20; // Level 3 tracking take profit, start from profit reaches 20%
STOPPER3 := 20; // Level 3 tracking take profit, profit retracement 20% trigger

次に,今日の価格と昨日の価格,そして昨日の価格の変動に基づいた価格範囲を設定します.この価格範囲と移動平均値との相対的な位置関係を通じて,開いているポジションの購入と販売の信号がうまく追跡できるだけでなく,ショック期間の開いたポジションの数と引き出しの大きさを減らすこともできます.

/ / Define the upper and lower intervals
NN := BARSLAST(DATE <> REF(DATE, 1)) + 1; // current number of cycles
TODAY_OPEN := VALUEWHEN(NN = 1, O); // Opening price of the day
TODAY_HIGH := HHV(H, NN); // The highest price of the day
TODAY_LOW := LLV(L, NN); // lowest price of the day
YESTERDAY_HIGH := REF(TODAY_HIGH, NN); // Yesterday's highest price
YESTERDAY_LOW := REF(TODAY_LOW, NN); // yesterday's lowest price
BAND := YESTERDAY_HIGH - YESTERDAY_LOW; // Yesterday amplitude
UPPERLINE : TODAY_OPEN + BAND; // upper line
LOWERLINE : TODAY_OPEN - BAND; // lower line
MYMA:MA(CLOSE, LENGTH); // Moving average

閉店価格が上方レールより高く,上部レールが移動平均値よりも高くなった場合,ロングポジションを開く.閉店価格が下部レールより低く,下部レールが移動平均値より小さい場合,ショートポジションを開く.閉店ポジション条件は開店ポジション条件とは正反対である.閉店価格が下部レールよりも低く,閉店価格が移動平均値よりも低くなった場合,ロングポジションを閉じる.閉店価格が上部レールよりも高く,閉店価格が移動平均値よりも高くなった場合,ショートポジションを閉じる.

// open the position
C > UPPERLINE AND UPPERLINE > MYMA, BK; // Open long position
C < LOWERLINE AND LOWERLINE < MYMA, SK; // Open short position

// close the position
C < LOWERLINE OR C < MYMA, SP; // Close long position
C > UPPERLINE OR C > MYMA, BP; // Close short position

最後に,この記事で言及したストップ・ロストとテイク・プロフィートの部分です. 利益を得るためのロング・ショート・ポジションであれ,それは3つの段階に分かれています. 各段階は,現在の市場価格変動と収益性に応じて自動的に調整されます. この調整は外部パラメータに設定されています. 異なる市場状況と品種状態に応じて細かな調整を行うことができます.

ストップ・ロスは,いかなるポジションも開いてお金を稼ぐことは不可能であるため,考慮すべき戦略の一部でもあります. 時々市場は私たちの期待に反するので,ストップ・ロスは絶対に必要です. この記事のストップ・ロスはシンプルで"暴力的"です.つまり,浮動損失が一定のレベルに達すると,すべてのポジションが閉鎖されます.

// long position take profit
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER1) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER1, SP;  // level 1
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER2) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER2, SP;  // level 2
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER3) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER3, SP;  // level 3

// short position take profit
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER1) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER1, BP;  // level 1
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER2) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER2, BP;  // level 2
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER3) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER3, BP;  // level 3

// stop loss
C <= BKPRICE * (1 - STOP_LOSS * 0.01), SP;  // long position
C >= SKPRICE * (1 + STOP_LOSS * 0.01), BP;  // short position

処理をより完全にするため 注文委任方法や信号フィルタリングも設定しました

// Set the order commission method
SETSIGPRICETYPE(BK,NEW_ORDER);
SETSIGPRICETYPE(SK,NEW_ORDER);
SETSIGPRICETYPE(BP,NEW_ORDER);
SETSIGPRICETYPE(SP,NEW_ORDER);

// Set the signal filtering method
AUTOFILTER;

戦略のバックテスト

試験環境

  • 取引品種:リバーインデックス
  • 時間:2015年2月22日~2019年9月18日
  • サイクル: 1 時間
  • スリッパージ: ポジションの開設・閉じる価格について 2ピップ
  • 料金:通常の交換基準の2倍

img

業績報告

img

資金曲線

img

コピー戦略

設定せずに完全な戦略ソースをコピーするにはクリックしますhttps://www.fmz.com/strategy/166753


関連性

もっと