[TOC]
جیسا کہ کہاوت ہے ، یہ دنیا طویل عرصے سے متحد ہونے کے بعد الگ ہوجائے گی۔ طویل عرصے سے تقسیم ہونے کے بعد بھی اس کے برعکس ہوگا۔ اور یہ رجحان فیوچر مارکیٹ میں بھی موجود ہے۔ ایسی کوئی قسم نہیں ہے جو صرف بڑھتی ہے لیکن گرتی نہیں ہے۔ لیکن کب بڑھتی ہے اور کب گرتی ہے ، اس کا انحصار انحراف کی شرح پر ہوتا ہے۔ اس مضمون میں ، ہم انحراف کی شرح کا استعمال ایک سادہ تجارتی حکمت عملی کی تعمیر کے لئے کریں گے۔
انحراف کی شرح بی آئی اے ایس ایک تکنیکی اشارے ہے جو چلتی اوسط سے اخذ کیا گیا ہے۔ یہ بنیادی طور پر فیصد کی شکل میں ہوتا ہے تاکہ اتار چڑھاؤ میں چلتی اوسط سے قیمت کے انحراف کی ڈگری کی پیمائش کی جاسکے۔ اگر چلتی اوسط ایک تاجر کی اوسط لاگت ہے تو ، انحراف کی شرح تاجر کی اوسط واپسی کی شرح ہے۔
انحراف کی شرح کی نظریاتی بنیاد تاجر کے دل کا تجزیہ ہے۔ جب قیمت مارکیٹ کی اوسط لاگت سے زیادہ ہوتی ہے ، اس کا مطلب یہ ہے کہ لانگ پوزیشن کے تاجروں کو منافع کو نقد کرنے کا خیال ہوگا ، جس کی وجہ سے قیمت گر جائے گی۔ جب قیمت مارکیٹ کی اوسط لاگت سے کم ہوتی ہے ، اس کا مطلب یہ ہے کہ شارٹ سیلر منافع بخش ہوتے ہیں ، اور منافع کو نقد کرنے کا خیال قیمت میں اضافے کا سبب بنے گا۔
جب قیمت چلتی اوسط سے اوپر کی طرف ہٹ جاتی ہے تو ، انحراف کی شرح بہت بڑی ہوتی ہے ، اور اس کا امکان بہت زیادہ ہوتا ہے کہ قیمت مستقبل میں گر جائے گی۔
جب قیمت نیچے کی طرف بڑھتی ہوئی اوسط سے انحراف کرتی ہے تو ، انحراف کی شرح بہت کم ہوتی ہے ، اور اس کا امکان بہت زیادہ ہوتا ہے کہ مستقبل میں قیمت بڑھ جائے گی۔
اگرچہ حرکت پذیر اوسط قیمت سے حساب کیا جاتا ہے ، لیکن بیرونی شکل کے لحاظ سے ، قیمت یقینی طور پر حرکت پذیر اوسط کے قریب چلے گی ، یا قیمت ہمیشہ حرکت پذیر اوسط کے گرد گھومتی رہے گی۔ اگر قیمت حرکت پذیر اوسط سے بہت دور ہوجاتی ہے ، چاہے قیمت حرکت پذیر اوسط سے اوپر یا نیچے ہو ، تو یہ آخر کار حرکت پذیر اوسط کی طرف بڑھ سکتی ہے ، اور انحراف کی شرح فیصد قدر ہے جس کی قیمت حرکت پذیر اوسط سے انحراف کرتی ہے۔
انحراف کی شرح = [(دن کی اختتامی قیمت - N دن کی اوسط قیمت) / N دن کی اوسط قیمت] * 100٪
ان میں ، N حرکت پذیر اوسط پیرامیٹر ہے ، کیونکہ N کا دورانیہ مختلف ہے ، انحراف کی شرح کا حساب کتاب کا نتیجہ بھی مختلف ہے۔ عام طور پر ، N کی اقدار یہ ہیں: 6 ، 12 ، 24 ، 36 ، وغیرہ۔ اصل استعمال میں ، اسے مختلف اقسام کے مطابق متحرک طور پر بھی ایڈجسٹ کیا جاسکتا ہے۔ تاہم ، پیرامیٹرز کا انتخاب بہت ضروری ہے۔ اگر پیرامیٹر بہت چھوٹا ہے تو ، انحراف کی شرح بہت حساس ہوگی ، اگر پیرامیٹر بہت بڑا ہے تو ، انحراف کی شرح بہت سست ہوگی۔ انحراف کی شرح کے حساب کتاب کے نتائج مثبت اور منفی ہیں۔ مثبت انحراف کی شرح جتنی زیادہ ہوگی ، بیلوں کا منافع اتنا ہی زیادہ ہوگا اور قیمت کی اصلاح کا امکان اتنا ہی زیادہ ہوگا۔ جتنا بڑا منافع ، منفی انحراف کی شرح اتنا ہی زیادہ ہوگا اور قیمت کی واپسی کا امکان اتنا ہی زیادہ ہوگا۔
چونکہ انحراف کی شرح حرکت پذیر اوسط کی ایک اور شکل ہے ، لہذا ہم دوہری حرکت پذیر اوسط کی حکمت عملی پر مبنی ڈبل انحراف کی شرح کی حکمت عملی کو بھی اپناسکتے ہیں۔ قلیل مدتی انحراف کی شرح اور طویل مدتی انحراف کی شرح کے مابین پوزیشنل تعلقات کا فیصلہ کرتے ہوئے ، موجودہ مارکیٹ کی حالت کا فیصلہ کیا جاتا ہے۔ اگر طویل مدتی انحراف کی شرح مختصر مدت کے انحراف کی شرح سے زیادہ ہے تو ، یہ دراصل طویل مدتی حرکت پذیر اوسط کو طویل مدتی حرکت پذیر اوسط کے اوپر عبور کرنے کی نمائندگی کرتا ہے ، اور اس کے برعکس۔
مرحلہ 1: حکمت عملی کا فریم ورک لکھیں
# Strategy main function
def onTick():
pass
# Program entry
def main():
while True: # Enter infinite loop mode
onTick() # execution strategy main function
Sleep(1000) # sleep for 1 second
ایف ایم زیڈ پلیٹ فارم گردش کی تربیت کے موڈ کو اپناتا ہے۔main
فنکشن اور ایکonTick
فنکشن کی وضاحت کرنے کی ضرورت ہے۔ مرکزی فنکشن حکمت عملی کا انٹری فنکشن ہے ، اور پروگرام کوڈ لائن کو لائن کے ذریعہ مین فنکشن سے شروع کرے گا۔ مرکزی فنکشن میں ، ایک لکھیںwhile
لوپ اور بار بار عملدرآمدonTick
فنکشن. حکمت عملی کے تمام بنیادی کوڈ میں لکھا ہےonTick
function.
مرحلہ 2: مجازی پوزیشنوں کی وضاحت کریں
mp = 0
ورچوئل پوزیشنوں کا فائدہ یہ ہے کہ یہ لکھنا آسان ہے ، اور تکراراتی آپریشن تیز ہے۔ یہ عام طور پر بیک ٹیسٹ ماحول میں استعمال ہوتا ہے۔ یہ فرض کیا جاتا ہے کہ ہر آرڈر مکمل طور پر بھرا ہوا ہے ، لیکن اصل پوزیشن عام طور پر اصل تجارت میں استعمال ہوتی ہے۔ چونکہ ورچوئل پوزیشن کھولنے اور بند ہونے کے بعد ریاست کو ریکارڈ کرنا ہے ، لہذا اسے عالمی متغیر کے طور پر بیان کرنے کی ضرورت ہے۔
مرحلہ 3: K لائن حاصل کریں
exchange.SetContractType('rb000') # Subscribe to futures varieties
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <long + 1: # If the number of K lines is too small
return
FMZ فنکشن کا استعمال کرتے ہوئےSetContractType
، آپ GetRecords
ریبر انڈیکس کے K لائن کے اعداد و شمار حاصل کرنے کے لئے تقریب. یہ انحراف کی شرح کا حساب کرنے کے لئے ایک مخصوص مدت لیتا ہے کے بعد سے، پروگرام کی غلطیوں سے بچنے کے لئے، اگر کافی K لائنز نہیں ہیں، استعمالif
فلٹر کرنے کے لئے بیانات.
مرحلہ 4: انحراف کی شرح کا حساب لگائیں
close = bars_arr[-2]['Close'] # Get the closing price of the previous K line
ma1 = TA.MA(bars_arr, short)[-2] # Calculate the short-term moving average value of the previous K line
bias1 = (close-ma1) / ma1 * 100 # Calculate the short-term deviation rate value
ma2 = TA.MA(bars_arr, long)[-2] # Calculate the long-term average of the previous K line
bias2 = (close-ma2) / ma2 * 100 # Calculate the long-term deviation rate value
انحراف کی شرح کے حساب کتاب کے فارمولے کے مطابق ، ہم سب سے پہلے اختتامی قیمت حاصل کرتے ہیں۔ اس حکمت عملی میں ، ہم پچھلی K لائن اختتامی قیمت کا استعمال کرتے ہیں ، جس کا مطلب ہے کہ موجودہ K لائن سگنل قائم ہے اور اگلی K لائن آرڈر دینے کے لئے ہے۔ پھر FMZ بلٹ ان کا استعمال کریںtalib
چلتی اوسط کا حساب لگانے کے لئے لائبریری۔ مثال کے طور پر چلتی اوسط ہے:TA.MA
یہ فنکشن 2 پیرامیٹرز وصول کرتا ہے، یعنی: K لائن صف اور چلتی اوسط مدت.
مرحلہ 5: آرڈر دینا
global mp # global variables
current_price = bars_arr[-1]['Close'] # latest price
if mp> 0: # If you are holding long positions
if bias2 <= bias1: # If the long-term deviation rate is less than or equal to the short-term deviation rate
exchange.SetDirection("closebuy") # Set the trading direction and type
exchange.Sell(current_price-1, 1) # Closing long positions
mp = 0 # reset virtual holding positions
if mp <0: # If you are holding short positions
if bias2 >= bias1: # If the long-term deviation rate is greater than or equal to the short-term deviation rate
exchange.SetDirection("closesell") # Set the trading direction and type
exchange.Buy(current_price + 1, 1) # closing short positions
mp = 0 # reset virtual holding positions
if mp == 0: # If there is no holding position
if bias2> bias1: # Long-term deviation rate is greater than short-term deviation rate
exchange.SetDirection("buy") # Set the trading direction and type
exchange.Buy(current_price + 1, 1) # open long positions
mp = 1 # reset virtual holding position
if bias2 <bias1: # The long-term deviation rate is less than the short-term deviation rate
exchange.SetDirection("sell") # Set the trading direction and type
exchange.Sell(current_price-1, 1) # open short positions
mp = -1 # reset virtual holding position
# Backtest configuration
'''backtest
start: 2018-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''
# External parameters
short = 10
long = 50
# Global variables
mp = 0
# Strategy main function
def onTick():
# retrieve data
exchange.SetContractType('rb000') # Subscribe to futures varieties
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <long + 1: # If the number of K lines is too small
return
# Calculate BIAS
close = bars_arr[-2]['Close'] # Get the closing price of the previous K line
ma1 = TA.MA(bars_arr, short)[-2] # Calculate the short-term moving average of the previous K line
bias1 = (close-ma1) / ma1 * 100 # Calculate the short-term deviation rate value
ma2 = TA.MA(bars_arr, long)[-2] # Calculate the long-term average of the previous K line
bias2 = (close-ma2) / ma2 * 100 # Calculate the long-term deviation rate value
# Placing Orders
global mp # global variables
current_price = bars_arr[-1]['Close'] # latest price
if mp> 0: # If you are holding long positions
if bias2 <= bias1: # If the long-term deviation rate is less than or equal to the short-term deviation rate
exchange.SetDirection("closebuy") # Set the trading direction and type
exchange.Sell(current_price-1, 1) # closing long positions
mp = 0 # reset virtual holding position
if mp <0: # If you are holding short positions
if bias2 >= bias1: # If the long-term deviation rate is greater than or equal to the short-term deviation rate
exchange.SetDirection("closesell") # Set the trading direction and type
exchange.Buy(current_price + 1, 1) # closing short positions
mp = 0 # reset virtual holding position
if mp == 0: # If there is no holding position
if bias2> bias1: # Long-term deviation rate is greater than short-term deviation rate
exchange.SetDirection("buy") # Set the trading direction and type
exchange.Buy(current_price + 1, 1) # opening long positions
mp = 1 # reset virtual holding position
if bias2 <bias1: # The long-term deviation rate is less than the short-term deviation rate
exchange.SetDirection("sell") # Set the trading direction and type
exchange.Sell(current_price-1, 1) # open short positions
mp = -1 # reset virtual holding position
# Program entry function
def main():
while True: # loop
onTick() # execution strategy main function
Sleep(1000) # sleep for 1 second
مکمل حکمت عملی FMZ کی ویب سائٹ پر شائع کی گئی ہے:https://www.fmz.com/strategy/215129
بیک ٹیسٹ کی ترتیب
کارکردگی کی رپورٹ
فنڈ وکر
انحراف کی شرح ایک آسان اور موثر تجارتی ٹول ہے جو تاجروں کے لئے ایک موثر حوالہ فراہم کرسکتا ہے۔ اصل استعمال میں ، اس کی قدر کو واقعی ظاہر کرنے کے لئے اسے MACD اور بولنگر بینڈ اشارے کے ساتھ لچکدار طریقے سے لاگو کیا جاسکتا ہے۔