Untitled

 avatar
unknown
plain_text
19 days ago
9.9 kB
4
Indexable
//@version=5
indicator("Rsn Banker Upd", overlay=true)

// Function to calculate the Main Force and Life Line oscillators
calculate_life_line_oscillator(n, weight, close, high, low) =>
    smoothedPrice = ((2 * close + high + low) / 4)
    lowestLow = ta.lowest(low, n)
    highestHigh = ta.highest(high, n)
    mainForce = ta.alma(ta.ema(((smoothedPrice - lowestLow) / (highestHigh - lowestLow)) * 100, n) * weight,3,0.85,6)
    lifeLine = ta.ema((0.667 * mainForce[1] + 0.333 * mainForce), 2) * weight
    [mainForce, lifeLine]

// User-defined inputs
n = input.int(27, title="Period")
weight = input.float(1.0, title="Weight", minval=0.1)

// Visual Settings
bullColor = input.color(color.yellow, "Bullish Color", group="Visual Settings")
bearColor = input.color(color.fuchsia, "Bearish Color", group="Visual Settings")
entryColor = input.color(color.yellow, "Entry Signal Color", group="Visual Settings")
exitColor = input.color(color.fuchsia, "Exit Signal Color", group="Visual Settings")

// Calculate the oscillators
[mainForce, lifeLine] = calculate_life_line_oscillator(n, weight, close, high, low)

// Plot the oscillators
plot(mainForce, color=color.yellow, linewidth = 2, title="Main Force")
plot(lifeLine, color=color.fuchsia, linewidth = 2, title="Life Line")

// Detect crossovers and crossunders
crossoverCondition = ta.crossover(mainForce, lifeLine)
crossunderCondition = ta.crossunder(mainForce, lifeLine)

// Draw labels for crossovers and crossunders
if crossoverCondition
    label.new(x=bar_index, y=mainForce, text="B", style=label.style_label_up, color=color.new(color.yellow,50), textcolor=color.white, size=size.small)

if crossunderCondition
    label.new(x=bar_index, y=mainForce, text="S", style=label.style_label_down, color=color.new(color.fuchsia,50), textcolor=color.white, size=size.small)

//functions
xrf(values, length) =>
    r_val = float(na)
    if length >= 1
        for i = 0 to length by 1
            if na(r_val) or not na(values[i])
                r_val := values[i]
                r_val
    r_val

xsa(src, len, wei) =>
    sumf = 0.0
    ma = 0.0
    out = 0.0
    sumf := nz(sumf[1]) - nz(src[len]) + src
    ma := na(src[len]) ? na : sumf / len
    out := na(out[1]) ? ma : (src * wei + out[1] * (len - wei)) / len
    out

//set up a simple model of banker fund flow trend	
fundtrend = (3 * xsa((close - ta.lowest(low, 27)) / (ta.highest(high, 27) - ta.lowest(low, 27)) * 100, 5, 1) - 2 * xsa(xsa((close - ta.lowest(low, 27)) / (ta.highest(high, 27) - ta.lowest(low, 27)) * 100, 5, 1), 3, 1) - 50) * 1.032 + 50
//define typical price for banker fund
typ = (2 * close + high + low + open) / 5
//lowest low with mid term fib # 34
lol = ta.lowest(low, 34)
//highest high with mid term fib # 34
hoh = ta.highest(high, 34)
//define banker fund flow bull bear line
bullbearline = ta.ema((typ - lol) / (hoh - lol) * 100, 13)
//define banker entry signal
bankerentry = ta.crossover(fundtrend, bullbearline) and bullbearline < 41
bankerexit =  ta.crossunder(fundtrend, bullbearline) and bullbearline > 75

plotcandle(0, 50, 0, 100, color = bankerentry ? entryColor : na, wickcolor = bankerentry ? #00000000 : na, bordercolor = bankerentry ? #00000000 : na)
plotcandle(0, 50, 0, 100, color = bankerexit ? exitColor : na, wickcolor = bankerexit ? #00000000 : na, bordercolor = bankerexit ? #00000000 : na)

// Kullanıcıdan tutar girdisi al
tutar = input.float(title="Tutar (TL)", defval=10000, minval=1)

// Hisse fiyatını kullanarak adet sayısını hesapla
quantity = math.floor(tutar / close)
ADET = str.tostring(quantity)

// API Anahtarı
APIKEY = input.string(title="API Anahtarı", defval="APIKEY-5Xpr53_-rvTBdJhLIfqzIet2qj-bo-LX-EeTF2QilXGqekxn53NBk0mG_Flr2XN", tooltip="Osmanlı Yatırım API anahtarınızı girin")

// Alım ve satım sinyalleri
al = ta.crossover(mainForce, lifeLine)
sat = ta.crossunder(mainForce, lifeLine)

// Sinyal değişkeni
Sinyal = al ? 1 : sat ? -1 : 0

// Sinyali tetikleyen fonksiyon
alarmTetikle(sembol, sinyal) =>
    durum = request.security(sembol, timeframe.period, sinyal)
    mesaj = durum > 0 ? "buy" : durum < 0 ? "sell" : ""  // Alım veya satım durumu
    if durum != 0 and str.length(sembol) > 1
        // Osmanlı Yatırım için JSON formatında emir mesajı oluştur
        alarmMesajiJSON = '{"name": "osmanlı yatırım sinyali",' +
                          '"symbol": "' + syminfo.ticker(sembol) + '",' +
                          '"orderSide": "' + mesaj + '",' +
                          '"orderType": "mktbest",' +
                          '"price": "0",' +
                          '"quantity": "' + ADET + '",' +
                          '"timeInForce": "ioc",' +
                          '"apiKey": "' + APIKEY + '",' +
                          '"goodInOffHours": "0"}'
        
        // Osmanlı Yatırım sistemine emir gönderme
        alert(message = alarmMesajiJSON, freq = alert.freq_once_per_bar_close)

        



sembol1 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S1")
sembol2 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S2")
sembol3 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S3")
sembol4 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S4")
sembol5 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S5")
sembol6 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S6")
sembol7 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S7")
sembol8 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S8")
sembol9 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S9")
sembol10 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S10")
sembol11 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S11")
sembol12 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S12")
sembol13 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S13")
sembol14 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S14")
sembol15 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S15")
sembol16 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S16")
sembol17 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S17")
sembol18 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S18")
sembol19 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S19")
sembol20 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S20")
sembol21 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S21")
sembol22 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S22")
sembol23 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S23")
sembol24 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S24")
sembol25 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S25")
sembol26 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S26")
sembol27 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S27")
sembol28 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S28")
sembol29 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S29")
sembol30 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S30")
sembol31 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S31")
sembol32 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S32")
sembol33 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S33")
sembol34 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S34")
sembol35 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S35")
sembol36 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S36")
sembol37 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S37")
sembol38 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S38")
sembol39 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S39")
sembol40 = input.symbol(defval = "", title = "Symbol", group = "SCANNER",inline = "S40")

alarmTetikle(sembol1, Sinyal)
alarmTetikle(sembol2, Sinyal)
alarmTetikle(sembol3, Sinyal)
alarmTetikle(sembol4, Sinyal)
alarmTetikle(sembol5, Sinyal)
alarmTetikle(sembol6, Sinyal)
alarmTetikle(sembol7, Sinyal)
alarmTetikle(sembol8, Sinyal)
alarmTetikle(sembol9, Sinyal)
alarmTetikle(sembol10, Sinyal)
alarmTetikle(sembol11, Sinyal)
alarmTetikle(sembol12, Sinyal)
alarmTetikle(sembol13, Sinyal)
alarmTetikle(sembol14, Sinyal)
alarmTetikle(sembol15, Sinyal)
alarmTetikle(sembol16, Sinyal)
alarmTetikle(sembol17, Sinyal)
alarmTetikle(sembol18, Sinyal)
alarmTetikle(sembol19, Sinyal)
alarmTetikle(sembol20, Sinyal)
alarmTetikle(sembol21, Sinyal)
alarmTetikle(sembol22, Sinyal)
alarmTetikle(sembol23, Sinyal)
alarmTetikle(sembol24, Sinyal)
alarmTetikle(sembol25, Sinyal)
alarmTetikle(sembol26, Sinyal)
alarmTetikle(sembol27, Sinyal)
alarmTetikle(sembol28, Sinyal)
alarmTetikle(sembol29, Sinyal)
alarmTetikle(sembol30, Sinyal)
alarmTetikle(sembol31, Sinyal)
alarmTetikle(sembol32, Sinyal)
alarmTetikle(sembol33, Sinyal)
alarmTetikle(sembol34, Sinyal)
alarmTetikle(sembol35, Sinyal)
alarmTetikle(sembol36, Sinyal)
alarmTetikle(sembol37, Sinyal)
alarmTetikle(sembol38, Sinyal)
alarmTetikle(sembol39, Sinyal)
alarmTetikle(sembol40, Sinyal)
Leave a Comment