
この戦略は,3つの異なる戦略を組み合わせて取引シグナルを生成する組み合わせの戦略です. まず,123形状の逆転戦略は,価格が特定の形状に現れる時に取引シグナルを生成します.次に,均線交差戦略は,移動平均と指数移動平均の交差を比較してトレンドを判断します.最後に,この戦略は,逆転取引の選択を許可しているかどうかです.
この戦略は,ウルフ・ジェンセンが”私はどのように期貨市場で3倍収益を上げることができるか”という著書で提唱した方法に由来する.この戦略は,株式の終盤価格とストークランダム指数に基づいて取引される.具体的ルールは以下の通りである.
閉店価格が前日の閉店価格より高く,前2日の閉店価格より高く,同時に9日周期のストキャスティック・スロー・インジケーターが50を下回ったとき,多めにすること.閉店価格が前1日の閉店価格より低く,そして前2日の閉店価格より低く,同時に9日周期のストキャスティック・ファスト・インジケーターが50以上であるとき,空きすること.
このようにして,価格が3日間の新高または新低を発生すると同時に,ランダムな指標のオーバーセールまたはオーバーバイのシグナルと組み合わせて,反転の機会を捉えることができます.
この策略は,lengthMA周期の単純な移動平均とlengthEMA周期の指数移動平均の交差を用いて取引信号を生成する.規則は次のとおりである.
指数移動平均線上をシンプル移動平均線で穿うとき多行;指数移動平均線下をシンプル移動平均線で穿うとき空行.
このようにして,価格傾向の転換点をより直観的に判断することができる.また,指数移動平均は価格変化により敏感であり,より早く取引信号を発信することができる.
この戦略は,逆転取引をするかどうかを選択することを許します.逆転取引を選択すると,多信号は空調になり,空調信号は多信号になります.これは,市場がしばしば誤解を招く行為があると確信している一部のトレーダーにとって有利かもしれません.
この組み合わせ戦略は,複数の単一戦略の優位性を組み合わせて,単一戦略のリスクを一定程度回避し,収益率を上げることができる.
具体的には,123形状逆転策は,価格が転向する兆候がある時に,そのタイミングで捕捉することができる.均線交差策は,トレンドの方向を判断することができる.逆転取引を許容することは,ブレイクされる確率を減らすことができる.
全体として,この戦略は反応しやすく,トレンドをよく追跡し,異なる市場環境に対応するためにカスタマイズできます.
この戦略の最大のリスクは,組合せ戦略自体が複雑で,失敗/成功の原因を判断するのは容易ではないことであり,戦略の最適化には不利である.
さらに,他のどんな技術分析戦略と同様に,この戦略も,隠蔽,止損効果などの問題に直面しています.具体的には,価格が激しく揺れるとき,誤信号が生じやすいです.継続して激しく傾向する場合,止損ラインが突破されやすいです.
これらのリスクを軽減するために,適当なパラメータを調整して,指標をより平坦にすることができる.適当なスロープラインを緩めることができる,または取引量ストップなどの方法を使用することができる.
この戦略は,以下の点で改善できます.
取引量,波動率などの指標にフィルター条件を追加して,無効な信号をフィルターできます.
パラメータを最適化し,最適なパラメータの組み合わせを探します.
異なる均線交差指標を試し,現在の市場環境に最も適合する指標を探します.
機械学習モデルを追加し,AI技術を活用してパラメータを自動的に最適化
この戦略は,複数の単一の戦略を集約した組み合わせの戦略として,単一の戦略よりも優れている.トレンドの反転を効果的に追跡でき,中長期線操作に適しています.パラメータ最適化,リスク管理などの手段で,その効果は著しく向上します.量化取引の実践者が深入の研究,適用,改善する価値があります.
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 19/06/2020
// 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
// The Moving Average Crossover trading strategy is possibly the most popular
// trading strategy in the world of trading. First of them were written in the
// middle of XX century, when commodities trading strategies became popular.
// This strategy is a good example of so-called traditional strategies.
// Traditional strategies are always long or short. That means they are never
// out of the market. The concept of having a strategy that is always long or
// short may be scary, particularly in today’s market where you don’t know what
// is going to happen as far as risk on any one market. But a lot of traders
// believe that the concept is still valid, especially for those of traders who
// do their own research or their own discretionary trading.
// This version uses crossover of moving average and its exponential moving average.
//
// 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
MACross(LengthMA,LengthEMA) =>
pos = 0
xMA = sma(close, LengthMA)
xEMA = ema(xMA, LengthEMA)
pos := iff(xEMA < xMA , 1,
iff(xEMA > xMA, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & EMA & MA Crossover", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthMA = input(10, minval=1)
LengthEMA = input(10,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMACross = MACross(LengthMA,LengthEMA)
pos = iff(posReversal123 == 1 and posMACross == 1 , 1,
iff(posReversal123 == -1 and posMACross == -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 )