
Chiến lược này là một hệ thống phát hiện xu hướng sáng tạo, dựa trên phương pháp tính toán của mạng lưới moving average ((EMA) có hai chỉ số. Nó phân tích các đặc điểm đa chiều của biến động giá, tính toán so sánh quyền lực đa không gian trong thời gian thực để xác định sự thay đổi và tính liên tục của xu hướng thị trường. Đặc điểm lớn nhất của chiến lược này là khả năng thích ứng của nó, có thể điều chỉnh cường độ tín hiệu theo tình hình thị trường động.
Nguyên tắc cốt lõi của chiến lược này là đo lường sức mạnh của thị trường bằng cách tính toán phức tạp của mạng lưới EMA. Cụ thể:
Đây là một chiến lược theo dõi xu hướng dựa trên phương pháp tính toán khoa học, có thể nắm bắt hiệu quả xu hướng thị trường thông qua thiết kế chỉ số kỹ thuật tiên tiến và kiểm soát rủi ro nghiêm ngặt. Ưu điểm cốt lõi của chiến lược là khả năng thích ứng và đáng tin cậy, có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau thông qua tối ưu hóa tham số và quản lý rủi ro hợp lý.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-11-14 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
// https://creativecommons.org/licenses/by-nc-sa/4.0/
// © alexgrover
//
// Original post:
// https://alpaca.markets/learn/andean-oscillator-a-new-technical-indicator-based-on-an-online-algorithm-for-trend-analysis/
//@version=5
strategy(title="Andean Oscillator [Strategy]",
shorttitle="AndeanOsc_Strategy",
overlay=false, // Zobraziť sa môže v samostatnom okne
initial_capital=10000, // Počiatočný kapitál
default_qty_type=strategy.percent_of_equity,
default_qty_value=100, // Použiť 100% z účtu na jeden obchod
pyramiding=0) // Nenavyšovať pozície
//------------------------------------------------------------------------------
//Inputs
//------------------------------------------------------------------------------
length = input.int(50, "Length")
sig_length = input.int(9, "Signal Length")
//------------------------------------------------------------------------------
//Výpočet Andean Oscillatora
//------------------------------------------------------------------------------
var float alpha = 2.0 / (length + 1)
// Premenné musia byť deklarované ako `var` pre zachovanie stavu
var float up1 = 0.
var float up2 = 0.
var float dn1 = 0.
var float dn2 = 0.
C = close
O = open
// Výpočet EMA obálok
up1 := nz(math.max(C, O, up1[1] - (up1[1] - C) * alpha), C)
up2 := nz(math.max(C * C, O * O, up2[1] - (up2[1] - C * C) * alpha), C * C)
dn1 := nz(math.min(C, O, dn1[1] + (C - dn1[1]) * alpha), C)
dn2 := nz(math.min(C * C, O * O, dn2[1] + (C * C - dn2[1]) * alpha), C * C)
// Býčia zložka a medvedia zložka
bull = math.sqrt(dn2 - dn1 * dn1)
bear = math.sqrt(up2 - up1 * up1)
// Signál = EMA z max(bull, bear)
signal = ta.ema(math.max(bull, bear), sig_length)
//------------------------------------------------------------------------------
//Jednoduchá LOGIKA STRATÉGIE (iba demonštrácia)
//------------------------------------------------------------------------------
// Príklad:
// - Ak je bull > bear, vstúpime do long (býčia sila väčšia ako medvedia)
// - Ak je bear > bull, vstúpime do short (medvedia sila väčšia ako býčia)
//
// S pyramiding=0 sa otvorí vždy iba jedna pozícia – ak príde opačný signál,
// TradingView zatvorí starú a otvorí novú.
if bull > bear
strategy.entry("Long", strategy.long, comment="Bull > Bear")
if bear > bull
strategy.entry("Short", strategy.short, comment="Bear > Bull")
//------------------------------------------------------------------------------
// Plotovanie (na posúdenie v samostatnom paneli)
//------------------------------------------------------------------------------
plot(bull, "Bullish Component", color=#089981)
plot(bear, "Bearish Component", color=#f23645)
plot(signal, "Signal", color=#ff9800)