
Cette stratégie est une stratégie d’arbitrage utilisant la forme de la double ligne uniforme. Elle combine les deux sous-stratégies de l’inversion de la forme 123 et de l’élément de quantité de transaction limitée (FVE) pour effectuer des opérations d’arbitrage lorsque les deux émettent simultanément des signaux d’achat ou de vente.
Cette sous-stratégie est inspirée du livre de Ulf Jensen Comment je peux gagner trois fois plus sur le marché à terme. Elle émet des signaux dans les conditions suivantes:
Le FVE est un indicateur purement transactionnel. Il détermine si des fonds sont entrés ou sortis en fonction de la volatilité des prix et de la taille du volume de transactions.
Un signal est émis lorsque l’indicateur FVE des deux dernières barres monte ou descend simultanément.
Cette stratégie combine deux indicateurs pour déterminer la tendance du marché et l’orientation des fonds, ce qui permet d’éviter efficacement les faux signaux. Les deux sous-stratégies ont également des caractéristiques inverses et peuvent donc être utilisées comme arbitrage pour réaliser un profit.
En outre, la forme de double ligne égale représente une tendance cohérente à court et à moyen terme et a donc une plus grande stabilité.
La stratégie repose sur une forme linéaire uniforme, où des signaux erronés sont susceptibles d’entraîner des pertes en cas de choc du marché. De plus, le risque d’une défaite inversée est fréquent.
Il est possible de rendre la stratégie plus robuste en ajustant les paramètres de manière appropriée, ou de mettre en place des arrêts de perte pour contrôler le risque.
Il est possible de tester plus de types d’indicateurs de moyenne pour trouver la meilleure correspondance. D’autres indicateurs de jugement auxiliaires peuvent également être introduits, tels que les indicateurs de force et de faiblesse, les indicateurs de volatilité, etc., pour éviter les faux signaux.
En outre, il est possible d’étudier comment ajuster les paramètres en fonction de la dynamique des conditions du marché pour rendre les stratégies plus adaptables. Il est également possible d’explorer l’apprentissage automatique et les algorithmes de réseaux neuronaux pour réaliser l’adaptation des paramètres.
Cette stratégie d’arbitrage à double ligne fournit un cadre de base pour le trading d’arbitrage à courte ligne et mérite une étude plus approfondie.
/*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 )