富創出 複合戦略

作者: リン・ハーンチャオチャン開催日:2023年11月1日 16:28:55
タグ:

img

概要

この戦略は,中期から短期間の利益を目指す複合的な取引戦略です.両者の強みを活用し,より信頼性の高い取引信号を取得するために123 リバース戦略と Awesome オシレーター戦略を統合します.

戦略の論理

戦略は2つの部分からなる.

123 逆転戦略

この部分は,ウルフ・ジェンセン著『How I Tripled My Money in the Futures Market』の183ページに記載されている逆転戦略から改訂されたものです. 閉じる価格が2日連続で前の閉じる価格よりも高く,9日間のスローストキャスティックは50を下回る. 閉じる価格が2日連続で前の閉じる価格よりも低く,9日間のファストストキャスティックは50を超えるとショートになります.

素晴らしいオシレーター戦略

この部分は Awesome Oscillator インディケーターを使用し, AO の現在の値と前の値を比較する.現在の AO 値が前の値よりも高い場合,ロングに行く良い機会を示し,ヒストグラムバーの色は青である.現在の AO 値が前の値よりも高い場合,ショートに行く良い機会を示し,バーの色は赤である.

合致信号は次のとおり生成されます. 123 リバースと Awesome オシレーター戦略が両方とも買い信号を出している場合,ロング戦略を採用します. 両方が売り信号を出している場合,ショート戦略を採用します.

利点分析

この複合戦略の最大の利点は 2つの異なるタイプの戦略の強みを組み合わせて,取引信号の信頼性と安定性を向上させることです.

123リバース戦略は,中期から短期間に適用され,リバース機会を把握することができる.Awesome Oscillator戦略は,短期的なトレンドに焦点を当て,より敏感である.この2つの戦略は互いを補完し,偽信号をフィルタリングし,異なる段階でのより良いエントリー機会を把握するのに役立ちます.

さらに,この戦略は,より全面的なアプローチのために,価格行動自体とボリューム価格関係の両方を考慮して,K線情報と振動指標を包括的に利用しています.

リスク分析

この戦略の最大のリスクは 複数の戦略を組み合わせることで 個々のリスクも増やすことです

123 リバース戦略自体は,範囲限定市場に閉じ込められるリスクを完全に回避することはできません. Awesome オシレーター戦略は,短期間の市場変動にも敏感です. 両戦略からの誤った信号は増幅されます.

さらに,パラメータ設定は戦略のパフォーマンスにも影響する.最適なパラメータを見つけるには広範なテストと最適化が必要である.

リスクを軽減するために,個別の取引のダウンサイドを制限するためにポジションのサイズを適切に設定します.また,より多くの損失を防ぐためにストップ・ロスのオーダーを設定します.

オプティマイゼーションの方向性

この戦略は,次の側面においてさらに最適化することができる.

  1. パラメータをテストして最適化して最適な組み合わせを見つけます

  2. 信号の質をさらに向上させるために他の指標やフィルターを追加します.

  3. 複数のタイムフレームのアプローチのために異なるタイムフレームを最適化します.

  4. リスクをコントロールするために ダイナミックストップを追加します

  5. 実際のトランザクションコストを考慮し,入国/出国基準を定義する.

  6. 逆トレンド取引を避けるために,主要なトレンド方向を考慮してください.

結論

この戦略は123リバースとAwesomeオシレーター戦略の強みを組み合わせ,シグナル信頼性を向上させ,柔軟性と市場の変化に対する感受性を維持する.ライブ取引で安定した利益を得るには,さらなるパラメータ最適化と厳格なリスク制御が必要である.全体として,この戦略は中期から短期間の取引に良い可能性があり,調査と適用に値する.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


BWAC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    pos:= iff(nRes > nRes[1], 1,
             iff(nRes < nRes[1], -1, nz(pos[1], 0)))  
    pos

strategy(title="Combo Backtest 123 Reversal & Awesome Oscillator (AC)", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Awesome Oscillator (AC) ----")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBWAC = BWAC(nLengthSlow,nLengthFast)
pos = iff(posReversal123 == 1 and posBWAC == 1 , 1,
	   iff(posReversal123 == -1 and posBWAC == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

もっと