
Cette stratégie est basée sur l’adaptation des indices des moyennes mobiles (AIOMA) et des moyennes mobiles pondérées (WMA) pour la réalisation des signaux de négociation. Elle génère des signaux d’achat et de vente par la croisée des indices AIOMA et WMA.
AIOMA-WMA: une stratégie d’adaptation croisée
La stratégie comprend principalement les éléments suivants:
Calcul de l’indicateur AIOMA
Calcul de l’indice WMA
Signal de transaction généré
Logique de transaction
Le risque peut être réduit par des paramètres d’optimisation appropriés, la définition d’un point d’arrêt ou le filtrage combiné d’autres indicateurs.
Cette stratégie intègre les avantages des deux indicateurs AIOMA et WMA pour générer des signaux de négociation par croisement. La qualité du signal peut être améliorée par rapport à une seule moyenne mobile. Elle peut être améliorée par l’optimisation des paramètres, les stratégies de stop-loss et le filtrage de la volatilité, etc.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SDTA
//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)
// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")
// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)
// WMA hesaplama
wma = ta.wma(close, wma_length)
// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)
// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
if dir
strategy.entry("Enter", strategy.long)
label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
else if not dir
strategy.entry("Exit", strategy.short)
label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")
// Long pozisyon girişi
if cross_up
enterTrade(true, low, "Buy Signal", color.green)
// Short pozisyon girişi
if cross_down
enterTrade(false, high, "Sell Signal", color.red)
// Pozisyon kapatma
if cross_up and strategy.position_size > 0
strategy.close("Enter")
if cross_down and strategy.position_size < 0
strategy.close("Exit")
// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")