Alýntý Originally Posted by @yörük@ Yazýyý Oku
5 farklý stratejiniz var... yapacaðýnýz en büyük hata....

hepsini birleþtirmeye kalkmak....

ya da...

hepsinden alýp... en iyi bir taneyi yapmaya çalýþmak....


o zaman soru....
bir elinizde bir parmak olsa mý daha iyi kullanýrdýnýz....

ya da... beþ parmak olunca mý...

cevap belli...

öyleyse...

htf robota karþý...

en mantýklý yol....

en iyi 5 stratejinizi belirleyip....

stratejik hub yapmaktýr ki...

bulunduðu periyotta... hub kendi seçsin....

deðil mi...
dikkat edilecek nokta ise TW sadece tek strateji okur... ve tabloya belirtir...
birden fazla çalýþmaz...

þimdi kýsýtlanmýþ....
rastgele... 3 koda... strateji yazýlmýþ... ve üçü hub olarak birleþtirilmiþ....
ama otomatik seçim eklenmemiþ...
sadece seçtiðinizin... sonucunu tabloda belirten....

basit bir kalýp örneði....
amaç bu tarz kalýplarý... kendiniz geliþtirmek uygulamak için...

basit bir örnek....
PHP Code:
// © Kinetik Komuta Merkezi - OMEGA-HUB MULTI-ENGINE MATRIX
//@version=6
strategy("OMEGA-HUB Multi-Engine Matrix"overlay=trueinitial_capital=1000commission_type=strategy.commission.percentcommission_value=0.04max_bars_back=5000)

// ── 1. ANA SEÇÝCÝ VE GLOBAL AYARLAR ─────────────────────────────────────────
var string GRP_HUB  "🛸 OMEGA-HUB ANA KUMANDA"
strat_mode input.string("V14.2 DayTrader""Aktif Savaþ Doktrini"options=["V14.2 DayTrader""AlphaTrend Matrix""KNN Mean Reversion"], group=GRP_HUB)
tp_mult    input.float(3.0"Hedef Dalga Çarpaný (V14.2 Ýçin R)"group=GRP_HUB)

// BIST Zaman Ayarlarý (10:00 - 17:50 arasý operasyon, 17:55 imha)
bist_tz "Europe/Istanbul"
hour(timebist_tz)
minute(timebist_tz)
bool is_trade_window = (>= 10) and (17 or (== 17 and <= 50))
bool is_eod          = (== 17 and >= 55) or (>= 18)

// Global Sinyal Hafýzasý
bool global_long       false
bool global_short      
false
bool global_exit_long  
false
bool global_exit_short 
false

// ── 2. MOTOR 1: V14.2 CYBORG-SNIPER MOTORU ──────────────────────────────────
var string GRP_V14 "🎯 Mod 1: Cyborg-Sniper Ayarlarý"
q_ratio input.float(0.002"Kalman Q Sabiti"group=GRP_V14)
atrLen  input.int(14"Kalkan ATR Periyodu"group=GRP_V14)
atrMult input.float(1.2"Kalkan Geniþliði"group=GRP_V14)

calc_kalman(float srcfloat p_statefloat p_cv) =>
    
float q_process 0.1 q_ratio
    float k_gain 
= (p_cv q_process) / (p_cv q_process 1.0 1e-10)
    
float next_state nz(p_statesrc) + k_gain * (src nz(p_statesrc))
    
float next_cov   = (k_gain) * (p_cv q_process)
    [
next_statenext_cov]

var 
float kf_state close, var float p_cov 1.0
[new_statenew_cov] = calc_kalman(closekf_statep_cov)
kf_state := new_statep_cov := new_cov

mirror_signal 
ta.ema(kf_state10) - ta.ema(kf_state20)

f_dbhf_sniper(srclm) =>
    var 
float dbhf src
    float tau 
ta.atr(l) * m
    float diff 
src dbhf
    
if diff tau
        dbhf 
+= (diff tau) * 0.1 
    
else if diff < -tau
        dbhf 
+= (diff tau) * 0.1
    dbhf

float kalkan 
f_dbhf_sniper(hl2atrLenatrMult)

bool v14_long  ta.crossover(mirror_signal0)
bool v14_short ta.crossunder(mirror_signal0)

// ── 3. MOTOR 2: ALPHATREND MOMENTUM MOTORU ──────────────────────────────────
var string GRP_AT "⚡ Mod 2: AlphaTrend Ayarlarý"
coeff input.float(1.0"AlphaTrend ATR Çarpaný"step=0.1group=GRP_AT)
AP    input.int(14"AlphaTrend Periyodu"minval=1group=GRP_AT)
overrideSensitivity input.float(2.0"Kýrýlým Hassasiyeti"step=0.1group=GRP_AT)

float AT_ATR ta.sma(ta.trAP)
float upT    low  AT_ATR coeff
float downT  
high AT_ATR coeff
float mfiVal 
ta.mfi(hlc3AP)

float AlphaTrend 0.0
AlphaTrend 
:= mfiVal >= 50 ? (upT nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT) : (downT nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT)

var 
int at_direction 1
if AlphaTrend AlphaTrend[2]
    
at_direction := 1
else if AlphaTrend AlphaTrend[2]
    
at_direction := -1

bool isCrossUp   
close[1] > AlphaTrend[1] and close[2] <= nz(AlphaTrend[2])
bool isCrossDn   close[1] < AlphaTrend[1] and close[2] >= nz(AlphaTrend[2])
bool _boMomentum = (math.abs(close[1] - close[2]) > AT_ATR[1] * overrideSensitivity)

if 
_boMomentum and isCrossUp
    at_direction 
:= 1
else if _boMomentum and isCrossDn
    at_direction 
:= -1

bool isTrendCrossUp 
AlphaTrend AlphaTrend[2] and nz(AlphaTrend[1]) <= nz(AlphaTrend[3])
bool isTrendCrossDn AlphaTrend AlphaTrend[2] and nz(AlphaTrend[1]) >= nz(AlphaTrend[3])
bool buySignalk     isTrendCrossUp or (_boMomentum and isCrossUp)
bool sellSignalk    isTrendCrossDn or (_boMomentum and isCrossDn)

var 
int K1 0, var int K2 0
var int O1 0, var int O2 0
O1 
:= buySignalk[1] ? O1 1
O2 
:= sellSignalk[1] ? O2 1
K1 
:= buySignalk K1 1
K2 
:= sellSignalk K2 1

bool at_long  
buySignalk and O1 K2
bool at_short 
sellSignalk and O2 K1

// ── 4. MOTOR 3: KNN YAPAY ZEKA (ORTALAMAYA DÖNÜÞ) MOTORU ────────────────────
var string GRP_KNN "🧠 Mod 3: KNN Yapay Zeka Ayarlarý"
k_val       input.int(60"K Komþu Sayýsý"minval=5group=GRP_KNN)
win_size    input.int(800"Geriye Dönük Tarama Penceresi"minval=50group=GRP_KNN)
rev_window  input.int(6"Geri Dönüþ Vadesi"minval=1group=GRP_KNN)
p_dist      input.float(2.0"Minkowski p Üssü"minval=1.0group=GRP_KNN)
gauss_bw    input.float(1.5"Gaussian Bant Geniþliði"minval=0.1group=GRP_KNN)
prob_thresh input.float(0.65"Geri Dönüþ Ýhtimal Eþiði"minval=0.3group=GRP_KNN)

f_zscore(srclen) =>
    
_mu  ta.sma(src[1], len)
    
_sig ta.stdev(src[1], len)
    (
src _mu) / math.max(_sig1e-6)

basis     ta.ema(close20)
bb_std    ta.stdev(close20)
bb_upper  basis 2.0 bb_std
vol_ratio 
volume math.max(ta.sma(volume[1], 20), 1)

f_dist     = (close basis) / math.max(basis1e-6) * 100
f_bb_pos   
= (close basis) / math.max(bb_upper basis1e-6)
f_rsi_dev  ta.rsi(close14) - 50.0
f_body_cmp 
math.abs(close open) / math.max(high low1e-6)
f_vol_fade = -vol_ratio

z1 
f_zscore(f_distwin_size), z2 f_zscore(f_bb_poswin_size), z3 f_zscore(f_rsi_devwin_size)
z4 f_zscore(f_body_cmpwin_size), z5 f_zscore(f_vol_fadewin_size)

f_label() =>
    
int lbl 0
    
if close[rev_window] > basis[rev_window]
        
bool touched false
        
for 0 to rev_window 1
            
if low[rev_window j] <= basis[rev_window j]
                
touched := true
        lbl 
:= touched 0
    
else if close[rev_window] < basis[rev_window]
        
bool touched false
        
for 0 to rev_window 1
            
if high[rev_window j] >= basis[rev_window j]
                
touched := true
        lbl 
:= touched ? -0
    lbl

var float p_rev_above 0.0, var float p_rev_below 0.0
var float[] dist_arr  = array.new_float(0)
var 
float[] label_arr = array.new_float(0)

// CPU yükünü azaltmak için sadece KNN modu seçiliyken çalýþtýrýlýr
if strat_mode == "KNN Mean Reversion" and bar_index win_size rev_window
    
array.clear(dist_arr), array.clear(label_arr)
    for 
rev_window to win_size rev_window by rev_window
        float d 
math.pow(math.pow(math.abs(z1 z1[i]), p_dist) + math.pow(math.abs(z2 z2[i]), p_dist) + math.pow(math.abs(z3 z3[i]), p_dist) + math.pow(math.abs(z4 z4[i]), p_dist) + math.pow(math.abs(z5 z5[i]), p_dist), 1.0 p_dist)
        array.
push(dist_arrd), array.push(label_arrf_label()[i])
    
    
int n_samples = array.size(dist_arr)
    if 
n_samples >= k_val
        int
[] sorted_idx = array.sort_indices(dist_arrorder.ascending)
        
float sigma math.max(array.get(dist_arr, array.get(sorted_idxmath.min(math.max(1int(k_val 2)), n_samples 1))), 1e-6)
        
float w_rev_above 0.0float w_rev_below 0.0
        float w_total_above 
0.0float w_total_below 0.0
        
        
for 0 to k_val 1
            int idx 
= array.get(sorted_idxj)
            
float d = array.get(dist_arridx)
            
float lbl = array.get(label_arridx)
            
float w math.exp(-math.pow(dgauss_bw) / (2.0 sigma sigma))
            if 
lbl == 1
                w_rev_above 
+= ww_total_above += w
            
else if lbl == -1
                w_rev_below 
+= ww_total_below += w
            
else
                if 
z1[array.get(sorted_idxj)] > 0
                    w_total_above 
+= w
                
else
                    
w_total_below += w
        p_rev_above 
:= w_total_above w_rev_above w_total_above 0.0
        p_rev_below 
:= w_total_below w_rev_below w_total_below 0.0

bool knn_long  
ta.crossover(p_rev_belowprob_thresh) and close basis
bool knn_short 
ta.crossover(p_rev_aboveprob_thresh) and close basis

// ── 5. STRATEJÝK HUBA BAÐLAMA VE YÖNLENDÝRME (ROUTING) ───────────────────────
if strat_mode == "V14.2 DayTrader"
    
global_long       := v14_long
    global_short      
:= v14_short
    global_exit_long  
:= (close kalkan)
    
global_exit_short := (close kalkan)
else if 
strat_mode == "AlphaTrend Matrix"
    
global_long       := at_long
    global_short      
:= at_short
    global_exit_long  
:= (K1 K2 and close AlphaTrend)
    
global_exit_short := (K2 K1 and close AlphaTrend)
else if 
strat_mode == "KNN Mean Reversion"
    
global_long       := knn_long
    global_short      
:= knn_short
    global_exit_long  
:= ta.crossover(closebasis// Ortalamaya ulaþtýðýnda çýkýþ
    
global_exit_short := ta.crossunder(closebasis)

// ── 6. EMÝR ÝCRAATLARI (MÜHÜRLÜ REPAINTSÝZ) ─────────────────────────────────
if global_long and is_trade_window and barstate.isconfirmed
    strategy
.entry("LONG"strategy.longcomment=strat_mode " Giriþ")
if 
global_short and is_trade_window and barstate.isconfirmed
    strategy
.entry("SHORT"strategy.shortcomment=strat_mode " Giriþ")

// Teknik Çýkýþ Þartlarý
if strategy.position_size and global_exit_long and barstate.isconfirmed
    strategy
.close("LONG"comment="Teknik Çýkýþ")
if 
strategy.position_size and global_exit_short and barstate.isconfirmed
    strategy
.close("SHORT"comment="Teknik Çýkýþ")

// BIST Gün Sonu Acýmasýz Ýmha (17:55)
if is_eod
    
if strategy.position_size 0
        strategy
.close("LONG"comment="G.S. Kapanýþ")
    if 
strategy.position_size 0
        strategy
.close("SHORT"comment="G.S. Kapanýþ")

// ── 7. DARK-MODE ANALYTICS HUD RADAR PANELÝ ─────────────────────────────────
float kar_faktoru strategy.grossloss == ? (strategy.grossprofit 99.99 0.0) : (strategy.grossprofit strategy.grossloss)

if 
barstate.islast
    
var table hud table.new(position.top_right24bgcolor=color.rgb(15152015), border_width=1border_color=color.rgb(454555))
    
color hdrBg color.rgb(30304510)
    
color altBg color.rgb(20202510)
    
    
table.cell(hud00"🛸 OMEGA-HUB"text_color=color.whitetext_size=size.smallbgcolor=hdrBgtext_halign=text.align_left)
    
table.cell(hud10"KOMUTA MERKEZÝ"text_color=color.whitetext_size=size.smallbgcolor=hdrBgtext_halign=text.align_right)
    
table.merge_cells(hud0010)
    
    
table.cell(hud01"Aktif Doktrin"text_color=color.graytext_size=size.smallbgcolor=altBgtext_halign=text.align_left)
    
table.cell(hud11strat_modetext_color=color.orangetext_size=size.smallbgcolor=altBgtext_halign=text.align_right)
    
    
table.cell(hud02"Radar Durumu"text_color=color.graytext_size=size.smalltext_halign=text.align_left)
    
table.cell(hud12strategy.position_size "LONG AKTÝF" strategy.position_size "SHORT AKTÝF" "PUSUDA"text_color=strategy.position_size != color.lime color.graytext_size=size.smalltext_halign=text.align_right)
    
    
table.cell(hud03"Kâr Faktörü (PF)"text_color=color.graytext_size=size.smallbgcolor=altBgtext_halign=text.align_left)
    
table.cell(hud13str.tostring(kar_faktoru"#.##"), text_color=kar_faktoru >= 2.0 color.lime kar_faktoru >= 1.0 color.yellow color.redtext_size=size.smallbgcolor=altBgtext_halign=text.align_right)

// VÝZYON HATTI (Sadece Seçili Olan Ana Gösterge Çizilir)
plot(strat_mode == "V14.2 DayTrader" kf_state na"Kalman Hattý"color=color.whitelinewidth=1)
plot(strat_mode == "V14.2 DayTrader" kalkan na"Sniper Kalkaný"color=color.limelinewidth=2)
plot(strat_mode == "AlphaTrend Matrix" AlphaTrend na"AlphaTrend Hattý"color=at_direction == color.green color.redlinewidth=2)
plot(strat_mode == "KNN Mean Reversion" basis na"KNN Basis MA"color=color.bluelinewidth=2