
ゴールデン・クロス・均等線入力戦略は,移動平均の交差信号または下折信号に基づいて取引信号を生成する戦略である. 短期移動平均の上で長期移動平均を横断すると,多頭金十字信号が生成される. 短期移動平均の下に長期移動平均を横断すると,空頭デッドクロス信号が生成される. 一般的な市場コンセンサスが使用する平均線パラメータは50日線と200日線である.
ゴールド・クロス・均等線の入力策は,クロス・均等線のパラメータを自由に選択できるようにする.視覚的な表示のために,私は1から987までの複数のフィボナッチ移動平均を描いたが,実際の使用では,わずかな均等線を選択して,明らかなクロス信号があるかどうかを観察し,これらのパラメータを長ポジションまたは短ポジションの設定に入力するだけでよい.
例えば,この戦略の長ポジションまたは短ポジションの設定は,次の入力です.
複数の信号: 交差点34日目 EMA 144日目 EMA
空気信号:
55日SMA以下で144日EMAを走っている.
この策略は,4つの異なる均線のパラメータを自由にマッチさせることができ,EMAとSMAの両方を選択することができます.
デフォルトのカラー: 平均線は緑色です 平均下落は赤色で示されています.
標準のフィボナッチ均線設定: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181日平均線について
標準の表示均線設定: この線は,
デフォルトの長期または短期ポジション設定: 複数の信号: 交差点34日目 EMA 144日目 EMA
空気信号: 55日SMA以下で144日EMAを走っている.
この戦略の核心論理は,2つの移動平均の交差信号に基づいて取引信号を生成することである.
移動平均は,市場動向を分析するために使用される技術指標である.それは,特定の期間における閉盘価格の平均値を計算し,市場の変動を効果的にフィルターすることができる.移動平均は,単純移動平均SMAと指数移動平均EMAに分けられる.
SMAは,ある周期の終了価格に対する単純な算術平均である.EMAは,終了価格に対する指数平滑移動平均であり,最近の価格により高い重みを与えます.EMAは,価格の変化により迅速に反応します.
短期平均線上から長期平均線を突破すると,市場傾向が看板に転じ,買入シグナルが生じます.これは金交差と呼ばれます.逆に,短期平均線下から長期平均線を突破すると,市場傾向が看板に転じ,売出シグナルが生じます.これは死交差と呼ばれます.
この戦略の柔軟性は,4つの均線のパラメータを自主的に設定できるという点にある.デフォルトのパラメータは,34日目EMAで144日目EMAを多頭信号として,55日目SMAの下で144日目EMAを空頭信号として設定する.これらのパラメータは,入力ボックスで自由に設定できる.
さらに,この策略は,複数のフィボナッチ数列の移動平均を描画し,より多くの時間次元からトレンドの変化を観察することができます.また,一般的な50日,100日,150日,200日平均線も描画されています.これらの平均線は,参照のために使用され,長ポジションまたは短ポジションの設定ボックスに入力された交差平均線パラメータに入ることが重要です.
平均線交差に基づく戦略の利点は
移動平均は市場騒音を効果的にフィルターし,トレンドの方向性を識別します.
取引信号は均線交差から,ある程度の信頼性がある
任意の長さ,短さ,平均線の組み合わせ,最適化パラメータ
平均線を複数の周期で組み合わせることで,より大きな時間帯でトレンドを識別できます.
EMAとSMAを同時に採用し,品種特性に応じて最適なパラメータを選択
視覚的に直観的なイメージ,多色均等線交差によってはっきりと可視
シンプルで使いやすい,初心者向け
様々な品種に柔軟に適用され,ある程度の普遍性がある
この戦略にはいくつかのリスクがあります.
変動する市場では,均線が不確実性の信号を大量に発生させ,超短線取引,取引頻度および手数料負担を増加させる可能性があります.
選択したパラメータが不適切である場合,誤信号が発生する可能性がある.適切な長短均線組合せを選択し,効果を検証する.
傾向が急激に逆転すると,均線交差信号は遅滞し,価格の変化に間に合うように反応することができない.
均線交差は完全に損失を回避することはできません.合理的な止損点を設定する必要があります.
過度最適化による曲線適合を防止する.異なる市場周期でパラメータの安定性をテストする.
この戦略は以下の点で最適化できます.
異なる長短平均線の組み合わせをテストし,歴史データに基づいて繰り返し測定できる最適なパラメータを探します.
平均線型を調整し,SMAとEMAの効果差を比較してみる.品種傾向はSMAを選択し,品種変動はEMAを選択する.
KDJ,MACDなどの他の指標と組み合わせた偽信号のフィルタリングにより,信号の質が向上する.
単一損失のリスクを制御するために,ストップ戦略を追加します.移動ストップまたはストップを追跡する設定が可能です.
資金管理戦略の最適化,例えば,撤収状況に応じてポジションの調整など,全体的なリスクの開口を制御する.
異なる品種および異なる周期における安定性をテストし,パラメータの健壮性を評価する.必要に応じて,品種に合わせてパラメータを微調整することができる.
ゴールド・クロス・均線入力戦略は,全体的に高い信頼性のトレンド追跡戦略である.それは,単純な直感的な均線交差を取引信号として使って,パラメータ最適化によって異なる品種に適応することができる.ストップと資金管理を組み合わせて,リスクを制御することができる.しかし,過度な最適化とトレンドの逆転の遅滞を防止するための注意が必要である.パラメータが適切に選択され,トレーダーは非常に強い規律を持っている場合,これは,高効率の安定した収益戦略になることができる.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Options360 : Fibonacci MAI (Moving Averages Input) beta 10/15/22
// © Options360 original public release = 2/25/23
// * This script uses altered pieces of code from my @Options360 "Fibonacci MA7" indicator*
// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811
////
strategy(title="Fibonacci Moving Averages Input", shorttitle = "FibMAI", overlay=true)
src = input(ohlc4, 'source')
//
string GRP = "Long or Short Settings"
exponential1 = input(true, title="long EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP)
long = input.int(34, minval=1, title="long", tooltip="Signal Moving average long input")
long1 = exponential1 ? ta.ema(src, long) : ta.sma(src, long)
exponential2 = input(true, title="crossover EMA or SMA", tooltip="EMA checked or SMA unchecked")
longer = input.int(144, minval=1, title="crossover", tooltip="Crossed over Moving average long input")
long2 = exponential2 ? ta.ema(src, longer) : ta.sma(src, longer)
exponential3 = input(true, title="short EMA or SMA", tooltip="EMA checked or SMA unchecked")
short = input.int(55, minval=1, title="short", tooltip="Signal Moving average short input")
short1 = exponential3 ? ta.ema(src, short) : ta.sma(src, short)
exponential4 = input(false, title="crossunder EMA or SMA", tooltip="EMA checked or SMA unchecked")
shorter = input.int(144, minval=1, title="crossunder", tooltip="Crossed under Moving average short input")
short2 = exponential4 ? ta.ema(src, shorter) : ta.sma(src, shorter)
//
string GRP2 = "Visual FibMA Settings"
exponential = input(true, title="Fib EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP2)
//
smaplot11 = input (true, title="MA1")
len11 = input.int(1, minval=1, title="ma Length")
out11 = exponential ? ta.ema(src, len11) : ta.sma(src, len11)
up11 = out11 > out11[1]
down11 = out11 < out11[1]
mycolor11 = up11 ? #3cfe12 : down11 ? #ff0202 : #008eff
plot(out11 and smaplot11 ? out11 :na, title="1", color=mycolor11, linewidth=1)
smaplot18 = input (true, title="MA2")
len18 = input.int(2, minval=1, title="ma Length")
out18 = exponential ? ta.ema(src, len18) : ta.sma(src, len18)
up18 = out18 > out18[1]
down18 = out18 < out18[1]
mycolor18 = up18 ? #3cfe12 : down18 ? #ff0202 : #008eff
plot(out18 and smaplot18 ? out18 :na , title="2", color=mycolor18, linewidth=1)
smaplot13 = input (true, title="MA3")
len13 = input.int(3, minval=1, title="ma Length")
out13 = exponential ? ta.ema(src, len13) : ta.sma(src, len13)
up13 = out13 > out13[1]
down13 = out13 < out13[1]
mycolor13 = up13 ? #3cfe12 : down13 ? #ff0202 : #008eff
plot(out13 and smaplot13 ? out13 :na , title="3", color=mycolor11, linewidth=1)
smaplot9 = input (true, title="MA5")
len9 = input.int(5, minval=1, title="ma Length")
out9 = exponential ? ta.ema(src, len9) : ta.sma(src, len9)
up9 = out9 > out9[1]
down9 = out9 < out9[1]
mycolor9 = up9 ? #3cfe12 : down9 ? #ff0202 : #008eff
plot(out9 and smaplot9 ? out9 :na , title="5", color=mycolor9, linewidth=1)
smaplot8 = input (true, title="MA8")
len8 = input.int(8, minval=1, title="ma Length")
out8 = exponential ? ta.ema(src, len8) : ta.sma(src, len8)
up8 = out8 > out8[1]
down8 = out8 < out8[1]
mycolor8 = up8 ? #3cfe12 : down8 ? #ff0202 : #008eff
plot(out8 and smaplot8 ? out8 :na , title="8", color=mycolor8, linewidth=1)
smaplot7 = input (true, title="MA13")
len7 = input.int(13, minval=1, title="ma Length")
out7 = exponential ? ta.ema(src, len7) : ta.sma(src, len7)
up7 = out7 > out7[1]
down7 = out7 < out7[1]
mycolor7 = up7 ? #3cfe12 : down7 ? #ff0202 : #008eff
plot(out7 and smaplot7 ? out7 :na , title="13", color=mycolor7, linewidth=1)
smaplot = input (true, title="MA21")
len = input.int(21, minval=1, title="ma Length")
out = exponential ? ta.ema(src, len) : ta.sma(src, len)
up = out > out[1]
down = out < out[1]
mycolor = up ? #3cfe12 : down ? #ff0202 : #008eff
plot(out and smaplot ? out :na, title="21", color=mycolor, linewidth=1)
smaplot2 = input (true, title="MA34")
len2 = input.int(34, minval=1, title="ma Length")
out2 = exponential ? ta.ema(src, len2) : ta.sma(src, len2)
up2 = out2 > out2[1]
down2 = out2 < out2[1]
mycolor2 = up2 ? #3cfe12 : down2 ? #ff0202 : #008eff
plot(out2 and smaplot2 ? out2 :na , title="34", color=mycolor2, linewidth=1)
smaplot3 = input (true, title="MA55")
len3 = input.int(55, minval=1, title="ma Length")
out3 = exponential ? ta.ema(src, len3) : ta.sma(src, len3)
up3 = out3 > out3[1]
down3 = out3 < out3[1]
mycolor3 = up3 ? #3cfe12 : down3 ? #ff0202 : #008eff
plot(out3 and smaplot3 ? out3 :na, title="55", color=mycolor3, linewidth=1)
smaplot4 = input (true, title="MA89")
len4 = input.int(89, minval=1, title="ma Length")
out4 = exponential ? ta.ema(src, len4) : ta.sma(src, len4)
up4 = out4 > out4[1]
down4 = out4 < out4[1]
mycolor4 = up4 ? #3cfe12 : down4 ? #ff0202 : #008eff
plot(out4 and smaplot4 ? out4 :na , title="89", color=mycolor4, linewidth=1)
smaplot5 = input (true, title="MA144")
len5 = input.int(144, minval=1, title="ma Length")
out5 = exponential ? ta.ema(src, len5) : ta.sma(src, len5)
up5 = out5 > out5[1]
down5 = out5 < out5[1]
mycolor5 = up5 ? #3cfe12 : down5 ? #ff0202 : #008eff
plot(out5 and smaplot5 ? out5 :na, title="144", color=mycolor5, linewidth=1)
smaplot6 = input (true, title="MA233")
len6 = input.int(233, minval=1, title="ma Length")
out6 = exponential ? ta.ema(src, len6) : ta.sma(src, len6)
up6 = out6 > out6[1]
down6 = out6 < out6[1]
mycolor6 = up6 ? #3cfe12 : down6 ? #ff0202 : #008eff
plot(out6 and smaplot6 ? out6 :na , title="233", color=mycolor6, linewidth=1)
smaplot10 = input (true, title="MA377")
len10 = input.int(377, minval=1, title="ma Length")
out10 = exponential ? ta.ema(src, len10) : ta.sma(src, len10)
up10 = out10 > out10[1]
down10 = out10 < out10[1]
mycolor10 = up10 ? #3cfe12 : down10 ? #ff0202 : #008eff
plot(out10 and smaplot10 ? out10 :na , title="377", color=mycolor10, linewidth=1)
smaplot14 = input (true, title="MA610")
len14 = input.int(610, minval=1, title="ma Length")
out14 = exponential ? ta.ema(src, len14) : ta.sma(src, len14)
up14 = out14 > out14[1]
down14 = out14 < out14[1]
mycolor14 = up14 ? #3cfe12 : down14 ? #ff0202 : #008eff
plot(out14 and smaplot14 ? out14 :na , title="610", color=mycolor14, linewidth=1)
smaplot15 = input (true, title="MA987")
len15 = input.int(987, minval=1, title="ma Length")
out15 = exponential ? ta.ema(src, len15) : ta.sma(src, len15)
up15 = out15 > out15[1]
down15 = out15 < out15[1]
mycolor15 = up15 ? #3cfe12 : down15 ? #ff0202 : #008eff
plot(out15 and smaplot15 ? out15 :na , title="987", color=mycolor15, linewidth=1)
smaplot16 = input (true, title="MA1597")
len16 = input.int(1597, minval=1, title="ma Length")
out16 = exponential ? ta.ema(src, len16) : ta.sma(src, len16)
up16 = out16 > out16[1]
down16 = out16 < out16[1]
mycolor16 = up16 ? #3cfe12 : down16 ? #ff0202 : #008eff
plot(out16 and smaplot16 ? out16 :na , title="1597", color=mycolor16, linewidth=1)
smaplot17 = input (true, title="MA2584")
len17 = input.int(2584, minval=1, title="ma Length")
out17 = exponential ? ta.ema(src, len17) : ta.sma(src, len17)
up17 = out17 > out17[1]
down17 = out17 < out17[1]
mycolor17 = up17 ? #3cfe12 : down17 ? #ff0202 : #008eff
plot(out17 and smaplot17 ? out17 :na , title="2584", color=mycolor17, linewidth=1)
smaplot19 = input (true, title="MA4181")
len19 = input.int(4181, minval=1, title="ma Length")
out19 = exponential ? ta.ema(src, len19) : ta.sma(src, len19)
up19 = out19 > out19[1]
down19 = out19 < out19[1]
mycolor19 = up19 ? #3cfe12 : down19 ? #ff0202 : #008eff
plot(out19 and smaplot19 ? out19 :na , title="4181", color=mycolor19, linewidth=1)
//
string GRP3 = "Visual MA Settings"
exponential5 = input(false, title="EMA or SMA", tooltip="EMA checked or SMA unchecked", group = GRP3)
smaplot50 = input (true, title="MA50")
len50 = input.int(50, minval=1, title="ma Length")
ma50 = exponential5 ? ta.ema(src, len50) : ta.sma(src, len50)
up50 = ma50 > ma50[1]
down50 = ma50 < ma50[1]
mycolor50 = up50 ? #3cfe12 : down50 ? #ff0202 : #008eff
plot(ma50 and smaplot50 ? ma50 :na , title="50", color=mycolor50, linewidth=1)
smaplot100 = input (true, title="MA100")
len100 = input.int(100, minval=1, title="ma Length")
ma100 = exponential5 ? ta.ema(src, len100) : ta.sma(src, len100)
up100 = ma100 > ma100[1]
down100 = ma100 < ma100[1]
mycolor100 = up100 ? #3cfe12 : down100 ? #ff0202 : #008eff
plot(ma100 and smaplot100 ? ma100 :na , title="100", color=mycolor100, linewidth=1)
smaplot150 = input (true, title="MA150")
len150 = input.int(150, minval=1, title="ma Length")
ma150 = exponential5 ? ta.ema(src, len150) : ta.sma(src, len150)
up150 = ma150 > ma150[1]
down150 = ma150 < ma150[1]
mycolor150 = up150 ? #3cfe12 : down150 ? #ff0202 : #008eff
plot(ma150 and smaplot150 ? ma150 :na , title="150", color=mycolor150, linewidth=1)
smaplot200 = input (true, title="MA200")
len200 = input.int(200, minval=1, title="ma Length")
ma200 = exponential5 ? ta.ema(src, len200) : ta.sma(src, len200)
up200 = ma200 > ma200[1]
down200 = ma200 < ma200[1]
mycolor200 = up200 ? #3cfe12 : down200 ? #ff0202 : #008eff
plot(ma200 and smaplot200 ? ma200 :na , title="200", color=mycolor200, linewidth=1)
//
if (ta.crossover(long1, long2))
strategy.entry("maL", strategy.long, comment="maLong")
if (ta.crossunder(short1, short2))
strategy.entry("maS", strategy.short, comment="maShort")
////