Untitled

 avatar
unknown
plain_text
a month ago
3.5 kB
18
Indexable
//@version=5
indicator("Manuel Trading Stratejisi", overlay=true)

// Kullanıcı girdileri
longLevel = input.price(0.0, "Alış Seviyesi", confirm=true)
shortLevel = input.price(0.0, "Satış Seviyesi", confirm=true)
stopLevel = input.price(0.0, "Stop Loss Seviyesi", confirm=true)
apiKey = input.string("", title=" 📏 API Key ", group="StrParams")
quantity = input.float(0.0, "İşlem Miktarı", minval=0.0)

// Function to generate alert message
getAlertMessage(bool condition, float buyQuantity = 0) =>
    string returnMessage    = na
    messageTimenow          = "{{timenow}}"  
    
    if condition
        returnMessage       := '{"name": "' + syminfo.ticker + '", "symbol": "' + syminfo.ticker + '", "orderSide": "buy", "orderType": "mkt", "price": "0", "quantity": "' 
                                 + str.tostring(math.floor(buyQuantity)) + '", "timeInForce": "ioc", "apiKey": "' + apiKey + '", "timenow": "' + messageTimenow + '"}'
    else
        returnMessage       := '{"name": "' + syminfo.ticker + '", "symbol": "' + syminfo.ticker + '", "orderSide": "sell", "orderType": "mkt", "price": "0", "quantity": "' 
                                 + str.tostring(quantity) + '", "timeInForce": "ioc", "apiKey": "' + apiKey + '", "timenow": "' + messageTimenow + '"}'
    
    returnMessage

var prevSymbol = syminfo.tickerid
symbolChanged = prevSymbol != syminfo.tickerid
if symbolChanged
    prevSymbol := syminfo.tickerid
    longLevel := 0.0
    shortLevel := 0.0
    stopLevel := 0.0

// Alarm koşulları
if ta.crossover(close, longLevel) and longLevel != 0
    alert(getAlertMessage(true, quantity), alert.freq_once_per_bar)

if ta.crossover(close, shortLevel) and shortLevel != 0
    alert(getAlertMessage(false, quantity), alert.freq_once_per_bar)

if ta.crossover(close, stopLevel) and stopLevel != 0
    alert(getAlertMessage(false, quantity), alert.freq_once_per_bar)

// Çizgileri ve label'ları tanımla
var line longLine = na
var line shortLine = na
var line stopLine = na
var label longLabel = na
var label shortLabel = na
var label stopLabel = na

// Sembol değiştiğinde çizgileri ve labelları temizle
if symbolChanged
    line.delete(longLine)
    line.delete(shortLine)
    line.delete(stopLine)
    label.delete(longLabel)
    label.delete(shortLabel)
    label.delete(stopLabel)

if longLevel != 0
    line.delete(longLine)
    label.delete(longLabel)
    longLine := line.new(x1=bar_index - 5, y1=longLevel, x2=bar_index + 10, y2=longLevel, color=color.green, style=line.style_dashed)
    longLabel := label.new(bar_index + 16, longLevel, "ALIŞ - " + str.tostring(longLevel, "#.##"), color=color.green, textcolor=color.white, style=label.style_label_left)

if shortLevel != 0
    line.delete(shortLine)
    label.delete(shortLabel)
    shortLine := line.new(x1=bar_index - 5, y1=shortLevel, x2=bar_index + 10, y2=shortLevel, color=color.red, style=line.style_dashed)
    shortLabel := label.new(bar_index + 16, shortLevel, "SATIŞ - " + str.tostring(shortLevel, "#.##"), color=color.red, textcolor=color.white, style=label.style_label_left)

if stopLevel != 0
    line.delete(stopLine)
    label.delete(stopLabel)
    stopLine := line.new(x1=bar_index - 5, y1=stopLevel, x2=bar_index + 10, y2=stopLevel, color=color.yellow, style=line.style_dashed)
    stopLabel := label.new(bar_index + 16, stopLevel, "STOP - " + str.tostring(stopLevel, "#.##"), color=color.yellow, textcolor=color.black, style=label.style_label_left)
Leave a Comment