TradingView Platformu bağlantısı
Bu indikatör, kullanıcı tarafından belirlenen alış fiyatı ve risk/ödül oranına göre, ATR değerlerini kullanarak, zarar kes ve hedef satış fiyatını otomatik olarak hesaplamak ve bir tablo ve çizim ile grafik üzerinde göstermek için kullanılır.
İndikatör tablosunun değerleri ve açıklamaları aşağıda gösterilmektedir:
Kullanıcı, indikatör arayüzü üzerinden aşağıda gösterilen değerleri değiştirebilir:
S.No. | Adı | Ön tanımlı değer | Açıklama |
---|---|---|---|
1 | Alış yöntemi | Kaynak | Kaynak veya doğrudan alış fiyatı belirleme |
2 | Alış kaynağı | Kapanış | Kapanış, açılış, yüksek, düşük gibi ... |
3 | Alış fiyatı | Kaynak | Alış fiyatı, kullanıcı tanımlı olarak seçilmişse, kullanılır. |
4 | ATR uzunluğu | 14 | - |
5 | ATR çarpanı stop loss | 1.5 | Stop loss fiyatının hesaplanmasında, alış fiyatından düşürülecek miktarı hesaplamak için ATR değeri ile çarpılacak değer |
6 | ATR çarpanı hedef satış | 3 | Hedef satış fiyatının hesaplanmasında, alış fiyatına eklenecek miktarı hesaplamak için ATR değeri ile çarpılacak değer |
* ATR çarpanları risk/ödül oranını otomatik olarak hesaplar (Ön tanımlı değer 2).
ATR değerleri grafiğin zaman periyoduna göre farklılık gösterir.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Niteya
//@version=5
// Indicator version 1.0
indicator(title="Niteya BG ATR Based Stop Loss Target Level", shorttitle='NATRST', overlay=true)
buy_method = input.string(title="Buying method", defval="Source", options=["Source", "User defined"])
buy_src = input(close, "Buying source")
buy_val = input.float(defval=0.00, title="Buying price")
atr_period = input.int(title="ATR length", defval=14, minval=1)
smoothing = input.string(title="ATR Moving Average method", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
ma_function(source, length) =>
switch smoothing
"RMA" => ta.rma(source, length)
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
=> ta.wma(source, length)
atr_mul_stop = input.float(1.50, title="ATR multiplier for stop loss")
atr_mul_target = input.float(3.00, title="ATR multiplier for target")
tr_val = ta.tr(true)
atr_val = ma_function(tr_val, atr_period)
price_src = buy_method=='Source' ? buy_src : buy_val
stop_price_decreased = atr_mul_stop * atr_val
stop_price = price_src - stop_price_decreased
stop_rate = (100*stop_price_decreased)/price_src
target_price_increased = atr_mul_target * atr_val
target_price = price_src + target_price_increased
target_rate = (100*target_price_increased)/price_src
var bool is_lines = false
if barstate.islast
// ATR values table
var table buy_table = table.new(position.middle_left, columns=3, rows=8, bgcolor=color.rgb(236, 236, 236), border_width=1, border_color=color.white)
table.merge_cells(buy_table, 1, 1, 2, 1)
table.merge_cells(buy_table, 1, 2, 2, 2)
table.merge_cells(buy_table, 1, 7, 2, 7)
table.cell(buy_table, 0, 0, "Value", text_color=color.rgb(244, 244, 244), text_halign=text.align_center, bgcolor=color.rgb(65, 65, 65))
table.cell(buy_table, 1, 0, "Stop", text_color=color.rgb(244, 244, 244), text_halign=text.align_center, bgcolor=color.red)
table.cell(buy_table, 2, 0, "Target", text_color=color.rgb(244, 244, 244), text_halign=text.align_center, bgcolor=color.green)
table.cell(buy_table, 0, 1, "ATR", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='Purchase price')
table.cell(buy_table, 0, 2, "Buy price", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='Purchase price')
table.cell(buy_table, 0, 3, "ATR multiplier", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='The amount of price reduced from buy price for stop loss price calculation and the amount of price added for target level price calculation.')
table.cell(buy_table, 0, 4, "Amount", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='The amount of price reduced from buy price for stop loss price calculation and the amount of price added for target level price calculation.')
table.cell(buy_table, 0, 5, "Price", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='Stop loss and target level sell price')
table.cell(buy_table, 0, 6, "Rate (%)", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange, tooltip='Decrease rate for stop loss and increase rate for target level of buy price.')
table.cell(buy_table, 0, 7, "Risk/Reward ratio", text_color=color.rgb(244, 244, 244), text_halign=text.align_left, bgcolor=color.orange)
table.cell(buy_table, 1, 1, str.tostring(atr_val, '0.000'), text_halign=text.align_center)
table.cell(buy_table, 1, 2, str.tostring(price_src, '0.000'), text_halign=text.align_center)
table.cell(buy_table, 1, 3, str.tostring(atr_mul_stop, '0.000'), text_halign=text.align_right)
table.cell(buy_table, 1, 4, str.tostring(stop_price_decreased, '0.000'), text_halign=text.align_right, tooltip=str.tostring(atr_mul_stop, '0.000') + ' * ' + str.tostring(atr_val, '0.000'))
table.cell(buy_table, 1, 5, str.tostring(stop_price, '0.000'), text_halign=text.align_right, tooltip=str.tostring(price_src, '0.000') + ' - ' + str.tostring(stop_price_decreased, '0.000'))
table.cell(buy_table, 1, 6, str.tostring(stop_rate, '0.000'), text_halign=text.align_right, tooltip='(100 * ' + str.tostring(stop_price_decreased, '0.000') + ') / ' + str.tostring(price_src, '0.000'))
table.cell(buy_table, 1, 7, str.tostring(target_rate/stop_rate, '0.00'), text_halign=text.align_center, tooltip=str.tostring(target_rate, '0.00') + ' / ' + str.tostring(stop_rate, '0.00'))
table.cell(buy_table, 2, 3, str.tostring(atr_mul_target, '0.000'), text_halign=text.align_right)
table.cell(buy_table, 2, 4, str.tostring(target_price_increased, '0.000'), text_halign=text.align_right, tooltip=str.tostring(atr_mul_target, '0.000') + ' * ' + str.tostring(atr_val, '0.000'))
table.cell(buy_table, 2, 5, str.tostring(target_price, '0.000'), text_halign=text.align_right, tooltip=str.tostring(price_src, '0.000') + ' + ' + str.tostring(target_price_increased, '0.000'))
table.cell(buy_table, 2, 6, str.tostring(target_rate, '0.000'), text_halign=text.align_right, tooltip='(100 * ' + str.tostring(target_price_increased, '0.000') + ') / '+ str.tostring(price_src, '0.000'))
// Buy position box
if not is_lines
bar_past = bar_index[40]
bar_past_label = bar_index[20]
var line target_line = line.new(bar_index, target_price, bar_past, target_price, extend=extend.none, color=color.green, width=1)
var line buy_line = line.new(bar_index, price_src, bar_past, price_src, extend=extend.none, color=color.blue, width=1)
var line stop_line = line.new(bar_index, stop_price, bar_past, stop_price, extend=extend.none, color=color.red, width=1)
linefill.new(target_line, buy_line, color=color.new(#59d68f, 50))
linefill.new(buy_line, stop_line, color=color.new(#fd9292, 50))
label_target = label.new(bar_past_label, target_price, text='Target: ' + str.tostring(target_price, '0.000') + ' (%' + str.tostring(target_rate, '0.000') + ')', color=color.new(color.green, 0), style=label.style_label_center, textcolor=color.white, size=size.normal)
label_src = label.new(bar_past_label, price_src, text='Buy: ' + str.tostring(price_src, '0.000') + ' - Risk/Reward ratio: ' + str.tostring(target_rate/stop_rate, '0.00'), color=color.new(color.blue, 0), style=label.style_label_center, textcolor=color.white, size=size.normal)
label_stop = label.new(bar_past_label, stop_price, text='Stop: ' + str.tostring(stop_price, '0.000') + ' (%' + str.tostring(stop_rate, '0.000') + ')', color=color.new(color.red, 0), style=label.style_label_center, textcolor=color.white, size= size.normal)
is_lines := true
İndikatörün bir uygulaması aşağıda grafikte gösterilmektedir: