Ini adalah strategi arbitraj yang menggunakan formasi purata bergerak berganda untuk membuat perdagangan arbitraj. Ia menggabungkan corak pembalikan 123 dan unsur-unsur sub-strategi Volume Terhingga (FVE) dan membuat perdagangan arbitraj apabila kedua-duanya memberikan isyarat beli atau jual secara serentak.
Sub-strategi ini diambil daripada buku
FVE adalah penunjuk jumlah murni. Ia menilai sama ada wang mengalir masuk atau keluar berdasarkan julat pergerakan harga dan jumlah dagangan.
Ia memberi isyarat apabila dua bar terakhir penunjuk FVE naik atau jatuh bersama.
Strategi ini menggabungkan dua jenis penunjuk untuk menentukan trend pasaran dan aliran wang, yang secara berkesan dapat mengelakkan isyarat palsu.
Di samping itu, pembentukan purata bergerak berganda mewakili konsistensi antara trend jangka pendek dan jangka sederhana, dengan itu mempunyai kestabilan yang lebih besar.
Strategi ini bergantung pada pembentukan purata bergerak, yang dengan mudah boleh menghasilkan isyarat palsu dan membawa kepada kerugian apabila pasaran turun naik.
Risiko boleh dikurangkan dengan menyesuaikan parameter dengan betul untuk menjadikan strategi lebih kukuh, atau dengan menetapkan stop loss untuk mengawal risiko.
Lebih banyak jenis purata bergerak boleh diuji untuk mencari kecocokan yang optimum. Penunjuk bantuan lain seperti indeks kekuatan dan indeks turun naik juga boleh diperkenalkan untuk mengelakkan isyarat palsu.
Di samping itu, penyelidikan boleh dilakukan mengenai cara menyesuaikan parameter secara dinamik berdasarkan keadaan pasaran untuk meningkatkan kebolehsesuaian. Pembelajaran mesin dan rangkaian saraf juga boleh diterokai untuk penyesuaian parameter sendiri.
Strategi arbitraj purata bergerak berganda ini mengintegrasikan dua penunjuk jenis pembalikan untuk penghakiman, yang dapat mengurangkan risiko hingga tahap tertentu. Tetapi bergantung pada pembentukan purata bergerak bermakna pengoptimuman lanjut diperlukan untuk menjadikan strategi lebih mantap. Secara keseluruhan, ia menyediakan rangka kerja asas untuk perdagangan arbitraj jangka pendek dan bernilai penyelidikan lanjut.
/*backtest start: 2023-10-24 00:00:00 end: 2023-11-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/08/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 FVE is a pure volume indicator. Unlike most of the other indicators // (except OBV), price change doesn?t come into the equation for the FVE (price // is not multiplied by volume), but is only used to determine whether money is // flowing in or out of the stock. This is contrary to the current trend in the // design of modern money flow indicators. The author decided against a price-volume // indicator for the following reasons: // - A pure volume indicator has more power to contradict. // - The number of buyers or sellers (which is assessed by volume) will be the same, // regardless of the price fluctuation. // - Price-volume indicators tend to spike excessively at breakouts or breakdowns. // // 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 FVE(Period,Factor) => pos = 0 nRes = 0.0 xhl2 = hl2 xhlc3 = hlc3 xClose = close xVolume = volume xSMAV = sma(xVolume, Period) nMF = xClose - xhl2 + xhlc3 - xhlc3[1] nVlm = iff(nMF > Factor * xClose / 100, xVolume, iff(nMF < -Factor * xClose / 100, -xVolume, 0)) nRes := nz(nRes[1],0) + ((nVlm / xSMAV) / Period) * 100 pos := iff(nRes > nRes[1] and nRes > nRes[2], 1, iff(nRes < nRes[1] and nRes < nRes[2], -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Finite Volume Elements (FVE)", shorttitle="Combo", overlay = true) Length = input(15, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Period = input(18, minval=1) Factor = input(0.6, minval=0.1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posFVE = FVE(Period,Factor) pos = iff(posReversal123 == 1 and posFVE == 1 , 1, iff(posReversal123 == -1 and posFVE == -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 )