
سونے کی تقسیم کی لہروں میں اتار چڑھاؤ کی حکمت عملی ایک مقداری حکمت عملی ہے جو سونے کی تقسیم کی تھیوری پر مبنی ہے۔ یہ حکمت عملی بنیادی طور پر سونے کی تقسیم کے اصول کا استعمال کرتے ہوئے متعدد قیمتوں کے بینڈوں کا حساب کتاب کرتی ہے ، جس سے اوپر اور نیچے کی لہریں بنتی ہیں۔ جب قیمتیں حد سے تجاوز کرتی ہیں تو ٹریڈنگ سگنل پیدا ہوتا ہے ، جس سے قیمتوں میں لہروں کے مابین اتار چڑھاؤ کی خصوصیات کو پکڑ کر منافع حاصل ہوتا ہے۔
اس کوڈ کی بنیادی منطق یہ ہے کہ قیمت کے سونے کی تقسیم کے طول و عرض کو ایک اہم نقطہ کے طور پر شمار کیا جائے۔ اہم اقدامات یہ ہیں:
اس نقطہ نظر پر مبنی نقطہ نظر کے ذریعہ، مارکیٹ میں مختصر مدت کے جھٹکے کو مؤثر طریقے سے پکڑنے کے لئے، اور طول و عرض کے درمیان تجارت میں منافع بخش واپسی کی جا سکتی ہے.
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ سونے کی تقسیم کے اہم نظریاتی اشارے کو اہم قیمت پوائنٹس کی نشاندہی کرنے کے لئے استعمال کیا جاتا ہے ، جس سے منافع کی امکانات میں اضافہ ہوتا ہے۔ اس کے فوائد میں شامل ہیں:
اس حکمت عملی میں مختصر مدت کے منافع کے حصول کے لیے کچھ خطرات بھی شامل ہیں جن کے بارے میں آگاہ رہنا ضروری ہے:
ان خطرات کو مناسب طول و عرض اور فنڈ مینجمنٹ کے طریقوں کو منتخب کرکے کنٹرول کیا جاسکتا ہے۔
اس حکمت عملی میں مزید اصلاحات کی گنجائش موجود ہے:
سونے کی تقسیم کی لہر کی ہلچل کی حکمت عملی مجموعی طور پر ایک بہت ہی عملی شارٹ لائن حکمت عملی ہے۔ یہ سونے کی تقسیم کی تھیوری کا استعمال کرتے ہوئے قیمت کے اہم نکات کا تعین کرتی ہے ، اور جب قیمت ان نکات کے آس پاس ہلچل پڑتی ہے تو اس سے بھرپور منافع حاصل کیا جاسکتا ہے۔ یہ رینج پر مبنی توڑنے والا طریقہ مارکیٹوں کے لئے موزوں ہے جس میں کچھ اتار چڑھاؤ اور خصوصیات ہیں ، اور اسے اکیلے استعمال کیا جاسکتا ہے یا دیگر حکمت عملیوں کے ساتھ مل کر۔ پیرامیٹرز کو بہتر بنانے اور مناسب فنڈ مینجمنٹ کے ذریعہ ، یہ حکمت عملی طویل مدتی مستحکم کام کر سکتی ہے۔
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © drhakankilic
//@version=5
strategy("FIBONACCI BANDS Strategy", shorttitle="FBANDS Strategy", overlay=true)
// === Date === {
//Backtest dates
fromDay = input.int(defval=1, title='From Day',minval=1,maxval=31)
fromMonth = input.int(defval=2, title='From Month',minval=1,maxval=12)
fromYear = input.int(defval=2022, title='From Year')
thruDay = input.int(defval=1, title='Thru Day',minval=1,maxval=31)
thruMonth = input.int(defval=1, title='Thru Month',minval=1,maxval=12)
thruYear = input.int(defval=2112, title='Thru Year')
showDate = true // input(defval=true, title="Show Date Range")
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => // create function "within window of time"
time >= start and time <= finish ? true : false
// }
// === Long or Short ===
tradeDirection = input.string(title="Long veya Short", options=["Long", "Short", "Both"], defval="Both", group="Bot")
// Translate input into trading conditions
longOK = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")
copypaste = input('{{strategy.order.alert_message}}', title='alert message to copy/paste', group="Bot")
// }
// === FIBONACCI BANDS === {
EMAperiod = input.int(14, title='EMAperiod', minval=1, maxval=500, group="Fibonacci")
ATRperiod = input.int(14, title='ATRperiod', minval=1, maxval=500, group="Fibonacci")
EMA = ta.ema(close, EMAperiod)
TR1 = math.max(high - low, math.abs(high - close[1]))
TR = math.max(TR1, math.abs(low - close[1]))
ATR = ta.sma(TR, ATRperiod)
F2 = input(defval=1.618, title='Fibonacci Ratio 2', group="Fibonacci")
F3 = input(defval=2.618, title='Fibonacci Ratio 3', group="Fibonacci")
F4 = input(defval=4.236, title='Fibonacci Ratio 4', group="Fibonacci")
R1 = ATR
R2 = ATR * F2
R3 = ATR * F3
R4 = ATR * F4
FIBOTOP4 = EMA + R4
FIBOTOP3 = EMA + R3
FIBOTOP2 = EMA + R2
FIBOTOP1 = EMA + R1
FIBOBOT1 = EMA - R1
FIBOBOT2 = EMA - R2
FIBOBOT3 = EMA - R3
FIBOBOT4 = EMA - R4
plot(FIBOTOP4[1], title='FIBOTOP4', linewidth=1, color=color.new(color.orange, 0))
plot(FIBOTOP3[1], title='FIBOTOP3', linewidth=1, color=color.new(color.aqua, 20))
plot(FIBOTOP2[1], title='FIBOTOP2', linewidth=1, color=color.new(color.gray, 40))
plot(FIBOTOP1[1], title='FIBOTOP1', linewidth=1, color=color.new(color.purple, 40))
plot(FIBOBOT1[1], title='FIBOBOT1', linewidth=1, color=color.new(color.green, 40))
plot(FIBOBOT2[1], title='FIBOBOT2', linewidth=1, color=color.new(color.yellow, 40))
plot(FIBOBOT3[1], title='FIBOBOT3', linewidth=1, color=color.new(color.blue, 20))
plot(FIBOBOT4[1], title='FIBOBOT4', linewidth=1, color=color.new(color.aqua, 0))
// plot(EMA[1], style=plot.style_cross, title='EMA', color=color.new(color.red, 0))
prefm = input.string(title="Fibo", options=["close>FIBOTOP4(orange)", "close>FIBOTOP3(aqua)","close>FIBOTOP2(gray)","close>FIBOTOP1(purple)", "Disable"] , defval="close>FIBOTOP1(purple)", group="Long")
_prefm = false
if (prefm == "close>FIBOTOP4(orange)" )
_prefm := close>FIBOTOP4[1]
if (prefm == "close>FIBOTOP3(aqua)" )
_prefm := close>FIBOTOP3[1]
if (prefm == "close>FIBOTOP2(gray)" )
_prefm := close>FIBOTOP2[1]
if (prefm == "close>FIBOTOP1(purple)" )
_prefm := close>FIBOTOP2[1]
if (prefm == "Disable" )
_prefm := low<low[1] or low>low[1]
prefmS = input.string(title="Fibo", options=["close<FIBOBOT1(green)", "close<FIBOBOT2(yellow)", "close<FIBOBOT3(blue)", "close<FIBOBOT4(aqua)", "Disable"] , defval="close<FIBOBOT1(green)", group="Short")
_prefmS = false
if (prefmS == "close<FIBOBOT1(green)" )
_prefmS := close<FIBOBOT1[1]
if (prefmS == "close<FIBOBOT2(yellow)" )
_prefmS := close<FIBOBOT2[1]
if (prefmS == "close<FIBOBOT3(blue)" )
_prefmS := close<FIBOBOT3[1]
if (prefmS == "close<FIBOBOT4(aqua)" )
_prefmS := close<FIBOBOT4[1]
if (prefmS == "Disable" )
_prefmS := low<low[1] or low>low[1]
// }
long2= _prefm
short2= _prefmS
//
// === Bot Codes === {
enterlong = input("Long Code", title='Long İlk Alım', group="Long Code")
entershort= input("Short Code", title='Short İlk Alım', group="Short Code")
exitlong = input("Long Exit Code", title='Long Exit', group="Long Code")
exitshort= input("Short Exit Code", title='Short Exit', group="Short Code")
// }
////////////////////////////////////////////////////////////////////////////////////////////TPSL
// Inputs
sl_inp = input.float(4, title='Stop %', step=0.1, group="Long") / 100
tp_inp = input.float(1.5, title='TP %', step=0.1, group="Long") / 100
sl_inp2 = input.float(4, title='Stop %', step=0.1, group="Short") / 100
tp_inp2 = input.float(1.5, title='TP %', step=0.1, group="Short") / 100
longtp = strategy.position_avg_price * (1 + tp_inp)
longstop= strategy.position_avg_price * (1 - sl_inp)
shortstop= strategy.position_avg_price * (1 + sl_inp2)
shorttp = strategy.position_avg_price * (1 - tp_inp2)
////////////////////////////////////////////////////////////////////////////////////////////
if window() and strategy.position_size==0 and longOK
strategy.entry("Long", strategy.long, when= long2, alert_message=enterlong, comment="Long")
if strategy.position_size>0
strategy.exit("Long", stop= longstop, limit=longtp, alert_message=exitlong, comment="TPSL")
////////////////////////////////////////////////////////////////////////////////////////////SHORT
if window() and strategy.position_size==0 and shortOK
strategy.entry("Short", strategy.short, when= short2, alert_message=entershort, comment="Short")
if strategy.position_size<0
strategy.exit("Short", stop= shortstop, limit= shorttp, alert_message=exitshort, comment="TPSL")