
La stratégie est basée sur le passage de la camarille et la moyenne mobile pour déterminer les points de rupture du marché et suivre la tendance. La stratégie est relativement simple, mais elle est très utile.
Calculer les lignes de support et de résistance du canal de la Camaleira.
Détermine si le prix a franchi cette ligne de passage. Par exemple, le prix de clôture a franchi la ligne H4 et le prix d’ouverture est inférieur à la ligne H4.
Ajout d’un jugement de moyenne mobile pour confirmer davantage le signal de rupture. Par exemple, une EMA inférieure au prix de clôture est une rupture à plusieurs têtes.
Entrer dans des positions à plusieurs têtes, définir des conditions de stop-loss et de stop-loss, telles que la définition d’un nombre fixe de points de stop-loss, et le suivi des stop-loss.
La même logique s’applique à la tête vide.
Ce qui précède est la principale logique de jugement de la stratégie, relativement simple, intuitive, facile à comprendre et à mettre en œuvre. En suivant dynamiquement les arrêts de perte, il est possible de continuer à profiter jusqu’à ce que la tendance soit inversée.
Cette stratégie présente les avantages suivants:
Les courants de Camilla permettent de localiser avec précision les supports et résistances potentiels.
Le filtrage homogène permet de différencier efficacement les signaux de rupture.
La méthode de suivi des arrêts permet de réaliser des bénéfices à long terme et d’éviter les arrêts inversés.
Les signaux stratégiques sont simples et clairs, et il est facile de juger de l’action.
Il n’est pas nécessaire d’ajuster fréquemment les paramètres, les transactions automatiques sont adaptées aux paramètres fixes.
La stratégie présente également les risques suivants:
Le canal de la Camaleira n’est pas en mesure d’évaluer efficacement le point de basculement, ce qui pourrait entraîner une augmentation des pertes.
Des paramètres déraisonnables pour le suivi des points d’arrêt peuvent entraîner une rupture prématurée ou une expansion des pertes.
Il est possible qu’il y ait une fausse percée.
Le marché a été secoué par de nombreuses fausses percées.
La stratégie peut également être optimisée pour:
Augmentation des indicateurs de filtrage composite, amélioration de la précision de la percée. On peut considérer les KDJ, MACD, etc.
Optimiser les stratégies de stop loss, comme l’introduction de stop loss dynamique, combiné avec l’indicateur ATR, etc.
Optimiser les paramètres des différentes variétés pour améliorer la stabilité.
Il est important d’augmenter le jugement sur les grandes tendances cycliques et d’éviter les échanges contraires.
La combinaison de l’analyse quantitative du jour et de l’analyse quantitative focalisée permet de faire une percée.
Développer un programme d’optimisation automatique des paramètres, optimisation en temps réel des paramètres.
L’expansion vers une stratégie d’arbitrage multivariée pour exploiter les écarts de prix.
Cette stratégie est une stratégie de suivi de rupture typique. Elle permet d’évaluer la résistance au support potentiel en utilisant le canal de la camarille, puis de déterminer la direction de la rupture en utilisant un filtre linéaire. La méthode d’arrêt des pertes est également raisonnable.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true)
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)
//Camarilla
pivot = (high + low + close ) / 3.0
range = high - low
h5 = (high/low) * close
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4)
l5 = close - (h5 - close)
l6 = close - (h6 - close)
// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green
//Daily Pivots
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1])
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1])
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1])
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1])
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1])
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1])
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1])
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1])
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1])
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1])
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1])
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1])
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1])
//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)
longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit ("Exit Long","Long", trail_points = 140,trail_offset = 1, loss =170)
//trail_points = 40, trail_offset = 3, loss =70 and
shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)