
Cette stratégie utilise une méthode basée sur le jugement de la forme de la ligne K pour réaliser un arbitrage de négociation de marché à haute fréquence. Son idée principale est de réaliser des transactions de levage de négociation de marché à haute fréquence en jugeant la forme de la plus-vaisselle dans les différentes périodes de la ligne K. Plus précisément, la stratégie surveille simultanément plusieurs périodes de la ligne K.
La logique centrale de cette stratégie est de juger de la forme polygonale des lignes K de différentes périodes de temps. Plus précisément, elle surveille simultanément les lignes K de 1 minute, 5 minutes et 15 minutes. La stratégie juge la forme polygonale actuelle en suivant si la ligne K a augmenté ou diminué avant la comparaison des prix. Si elle est en hausse continue, elle est considérée comme une forme polygonale actuelle; si elle est en baisse continue, elle est considérée comme une forme de tête vide.
Le code est principalement suivi parupsetdnsDeux indicateurs permettant de juger de la polyphonie de la ligne K. Ces deux indicateurs mesurent respectivement le nombre de lignes K qui montent et descendent de manière continue. La stratégie permet de définir des paramètresconsecutiveBarsUpetconsecutiveBarsDownLe nombre de lignes K pour déterminer la tendance.upsPlus est égal àconsecutiveBarsUpLe terme “multi-tête” désigne la capture de plusieurs têtes.dnsPlus est égal àconsecutiveBarsDownEn outre, la stratégie définit une période de temps pour le retour, ainsi que des informations sur la commande de la transaction.
Cette stratégie présente les avantages suivants:
Cette stratégie présente aussi des risques:
Pour réduire les risques, il est possible d’optimiser les choses de la manière suivante:
Cette stratégie peut être optimisée dans les directions suivantes:
Cette stratégie permet de réaliser une stratégie de arbitrage simple et efficace à haute fréquence grâce à une méthode basée sur le jugement de la forme de la ligne K. Le cœur de la stratégie est de capturer les tendances polygonales des prix de différentes périodes de temps, puis d’obtenir des opportunités de arbitrage. Malgré certains risques, la stratégie est mature et simple, très appropriée pour l’entrée dans le trading quantitatif.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-21 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Strategy
strategy("Up/Down Strategy", initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)
consecutiveBarsUp = input(1)
consecutiveBarsDown = input(1)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
// Strategy Backesting
startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
time_cond = true
// Messages for buy and sell
message_buy = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")
// Strategy Execution
if (ups >= consecutiveBarsUp) and time_cond
strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy)
if (dns >= consecutiveBarsDown) and time_cond
strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)