
Idea utama strategi ini adalah untuk menggabungkan strategi 123 reversal dan indikator pergerakan harga mutlak untuk menghasilkan satu isyarat komposit. Secara khusus, jika kedua-dua strategi mengeluarkan isyarat melakukan banyak, isyarat strategi akhir adalah 1 ((membuat banyak); jika kedua-dua strategi mengeluarkan isyarat melakukan kosong, isyarat strategi akhir adalah -1 ((membuat kosong); jika isyarat kedua-dua strategi tidak selaras, isyarat terakhir adalah 0 ((tidak melakukan apa-apa tindakan).
Pertama, prinsip strategi 123 berbalik ialah: jika harga penutupan dua hari berturut-turut lebih rendah daripada harga penutupan hari sebelumnya dan penunjuk rawak berada di bawah garis beli, buat lebih banyak; jika harga penutupan dua hari berturut-turut lebih tinggi daripada harga penutupan hari sebelumnya dan penunjuk rawak berada di atas garis jual, buat kosong.
Kedua, indikator pergerakan harga mutlak menunjukkan perbezaan antara dua purata bergerak indeks. Apabila purata bergerak cepat lebih tinggi daripada purata bergerak perlahan, ia adalah positif, menunjukkan trend ke atas; sebaliknya, negatif, menunjukkan trend ke bawah.
Akhirnya, strategi ini menggabungkan isyarat dari kedua-dua strategi anak, iaitu jika kedua-duanya mengeluarkan isyarat yang sama, maka ia akan bertindak mengikut isyarat itu; jika tidak, ia tidak akan bertindak.
Strategi ini secara menyeluruh mengambil kira isyarat pembalikan jangka pendek dan trend harga jangka panjang dan mampu mengenal pasti titik-titik perubahan yang berkesan. Strategi ini dapat meningkatkan kebolehpercayaan isyarat dan mengurangkan penciptaan isyarat yang salah berbanding dengan penggunaan isyarat 123 pembalikan atau APO secara tunggal.
Selain itu, strategi ini menggunakan pelbagai petunjuk teknikal, yang dapat menilai keseluruhan keadaan pasaran, dan tidak hanya bergantung pada satu petunjuk. Ini dapat mengelakkan kesalahan penghakiman keseluruhan yang disebabkan oleh kegagalan satu petunjuk.
Risiko terbesar dalam strategi ini adalah apabila strategi 123 berbalik dan indikator APO menghasilkan isyarat yang berbeza. Dalam kes ini, pengendali perlu menilai mana isyarat yang lebih dipercayai berdasarkan pengalaman mereka sendiri. Jika penilaian berlaku, peluang perdagangan yang hilang atau kerugian mungkin berlaku.
Di samping itu, jika terdapat perubahan besar dalam pasaran yang menyebabkan isyarat pembalikan jangka pendek dan isyarat trend garis tengah gagal pada masa yang sama, isyarat strategi juga akan menjadi salah. Pengendali perlu memberi perhatian kepada kesan peristiwa ekonomi politik yang besar terhadap pasaran dan boleh menangguhkan operasi strategi jika perlu.
Strategi ini boleh dioptimumkan dengan cara berikut:
Parameter untuk substrategi pengoptimuman yang menjadikan isyarat substrategi lebih dipercayai. Sebagai contoh, menyesuaikan parameter kitaran purata bergerak.
Menambah petunjuk penilaian tambahan, membentuk mekanisme pengundian. Apabila beberapa petunjuk menghantar isyarat yang sama, kebolehpercayaan isyarat akan lebih tinggi.
Meningkatkan strategi hentikan kerugian. Apabila pergerakan harga tidak sesuai dengan jangkaan petunjuk teknikal, hentikan kerugian tepat pada masanya dapat mengelakkan peningkatan kerugian.
Mengoptimumkan kedudukan bukaan dan hentian. Menggabungkan data retrospeksi sejarah, menetapkan nilai khusus yang lebih sesuai.
Strategi ini menggunakan pelbagai indikator teknikal untuk menilai keadaan, sehingga mengelakkan risiko bergantung pada satu indikator, meningkatkan ketepatan penilaian isyarat. Strategi ini juga mempunyai ruang untuk pengoptimuman, dan pelabur dapat menyesuaikan parameter mengikut keperluan mereka sendiri. Secara keseluruhan, isyarat strategi kuantifikasi harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga harga
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 22/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Absolute Price Oscillator displays the difference between two exponential
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
// APO crossing above zero is considered bullish, while crossing below zero is bearish.
// A positive indicator value indicates an upward movement, while negative readings
// signal a downward trend.
// Divergences form when a new high or low in price is not confirmed by the Absolute Price
// Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO
// forms a higher low. This indicates less downward momentum that could foreshadow a bullish
// reversal. A bearish divergence forms when price makes a higher high, but the APO forms a
// lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// 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
AbsolutePriceOscillator(LengthShortEMA, LengthLongEMA) =>
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = 0.0
pos := iff(xAPO > 0, 1,
iff(xAPO < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Absolute Price Oscillator (APO)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posAbsolutePriceOscillator = AbsolutePriceOscillator(LengthShortEMA, LengthLongEMA)
pos = iff(posReversal123 == 1 and posAbsolutePriceOscillator == 1 , 1,
iff(posReversal123 == -1 and posAbsolutePriceOscillator == -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 ? red: possig == 1 ? green : blue )