وسائل لوڈ ہو رہے ہیں... لوڈنگ...

سادہ اتار چڑھاؤ EMV حکمت عملی

مصنف:نیکی, تخلیق: 2020-07-01 10:39:17, تازہ کاری: 2023-10-28 15:26:49

img

خلاصہ

دوسرے تکنیکی اشارے کے برعکس ، آسان نقل و حرکت کی قیمت قیمت ، حجم اور مقبولیت میں ہونے والی تبدیلیوں کی عکاسی کرتی ہے۔ یہ ایک ایسی ٹیکنالوجی ہے جو قیمتوں اور حجم میں ہونے والی تبدیلیوں کو جوڑتی ہے۔ یہ یونٹ حجم کی قیمت میں ہونے والی تبدیلی کی پیمائش کرتی ہے ، جس سے قیمتوں میں اتار چڑھاؤ کا اشارہ ہوتا ہے۔ جب مارکیٹ مقبولیت حاصل کرتی ہے اور لین دین فعال ہوتا ہے تو ، یہ خریدنے کا اشارہ دیتی ہے۔ جب تجارتی حجم کم ہوتا ہے ، اور مارکیٹ کی توانائی ختم ہونے والی ہے تو ، یہ فروخت کا اشارہ دیتی ہے۔

سادہ اتار چڑھاؤ ای ایم وی کو مساوی حجم چارٹ اور کمپریسڈ چارٹ کے اصول کے مطابق ڈیزائن کیا گیا ہے۔ اس کا بنیادی تصور یہ ہے کہ: مارکیٹ کی قیمت صرف اس وقت بہت زیادہ توانائی استعمال کرے گی جب رجحان بدل جاتا ہے یا بدلنے والا ہے ، اور بیرونی کارکردگی یہ ہے کہ تجارتی حجم بڑا ہوجاتا ہے۔ جب قیمت بڑھ رہی ہے تو ، اس کے فروغ کے اثر کی وجہ سے یہ زیادہ توانائی استعمال نہیں کرے گی۔ اگرچہ یہ خیال اس نظریے کے برعکس ہے کہ مقدار اور قیمت دونوں میں اضافہ ہوتا ہے ، لیکن اس کی اپنی منفرد خصوصیات ہیں۔

EMV حساب کتاب کا فارمولا

مرحلہ 1: mov_mid کا حساب لگائیں

ان میں ، TH دن کی سب سے زیادہ قیمت کی نمائندگی کرتا ہے ، TL دن کی سب سے کم قیمت کی نمائندگی کرتا ہے ، YH پچھلے دن کی سب سے زیادہ قیمت کی نمائندگی کرتا ہے ، اور YL پچھلے دن کی سب سے کم قیمت کی نمائندگی کرتا ہے۔ پھر اگر MID > 0 کا مطلب ہے کہ آج کی اوسط قیمت کل کی اوسط قیمت سے زیادہ ہے۔

img

مرحلہ 2: تناسب کا حساب لگائیں

ان میں سے، ٹی وی او ایل دن کے تجارتی حجم کی نمائندگی کرتا ہے، TH دن کی سب سے زیادہ قیمت کی نمائندگی کرتا ہے، اور TL دن کی سب سے کم قیمت کی نمائندگی کرتا ہے.

img

مرحلہ 3: EMV کا حساب لگائیں

img

EMV استعمال

ای ایم وی کے مصنف کا خیال ہے کہ بڑے پیمانے پر اضافے کے ساتھ توانائی کی تیزی سے کمی ہوتی ہے ، اور اضافہ اکثر زیادہ دیر تک نہیں رہتا ہے۔ اس کے برعکس ، اعتدال پسند حجم ، جو ایک خاص مقدار میں توانائی کی بچت کرسکتا ہے ، اکثر اضافے کو زیادہ دیر تک جاری رکھتا ہے۔ ایک بار جب ایک عروج کا رجحان تشکیل دیا جاتا ہے تو ، کم تجارتی حجم قیمتوں کو اوپر دھکیل سکتا ہے ، اور ای ایم وی کی قیمت میں اضافہ ہوگا۔ ایک بار جب ڈاؤن ٹرینڈ مارکیٹ تشکیل دی جاتی ہے تو ، اس کے ساتھ اکثر لامحدود یا چھوٹی کمی ہوتی ہے ، اور ای ایم وی کی قیمت میں کمی واقع ہوگی۔ اگر قیمت اتار چڑھاؤ والی مارکیٹ میں ہے یا قیمتوں میں اضافے اور گرنے کے ساتھ ہی ایک بڑی مقدار ہوتی ہے تو ، ای ایم وی کی قیمت بھی صفر کے قریب ہوگی۔ لہذا آپ کو معلوم ہوگا کہ ای ایم وی زیادہ تر مارکیٹ میں صفر محور سے نیچے ہے ، جو اس اشارے کی ایک اہم خصوصیت بھی ہے۔ ایک اور نقطہ نظر سے ، ای ایم وی میگا اقدار اور منافع پیدا کرسکتا ہے۔

ای ایم وی کا استعمال بہت آسان ہے ، صرف یہ دیکھیں کہ آیا ای ایم وی صفر محور کو عبور کرتا ہے۔ جب ای ایم وی 0 سے نیچے ہوتا ہے تو ، یہ ایک کمزور مارکیٹ کی نمائندگی کرتا ہے۔ جب ای ایم وی 0 سے اوپر ہوتا ہے تو ، یہ ایک مضبوط مارکیٹ کی نمائندگی کرتا ہے۔ جب ای ایم وی منفی سے مثبت میں بدل جاتا ہے تو ، اسے خریدا جانا چاہئے۔ جب ای ایم وی مثبت سے منفی میں بدل جاتا ہے تو ، اسے فروخت کیا جانا چاہئے۔ اس کی خصوصیت یہ ہے کہ یہ نہ صرف مارکیٹ میں جھٹکے کی مارکیٹ سے بچ سکتا ہے ، بلکہ جب رجحان مارکیٹ شروع ہوتا ہے تو وقت پر مارکیٹ میں بھی داخل ہوسکتا ہے۔ تاہم ، چونکہ ای ایم وی قیمتوں میں تبدیلی کے وقت حجم میں تبدیلی کی عکاسی کرتا ہے ، اس کا اثر صرف درمیانی سے طویل مدتی رجحانات پر ہوتا ہے۔ قلیل مدتی یا نسبتا short مختصر تجارتی دوروں کے لئے ، ای ایم وی کا اثر بہت کم ہے۔

حکمت عملی کا نفاذ

مرحلہ 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

FMZ.COMگھماؤ ٹریننگ موڈ اپناتا ہے. سب سے پہلے، آپ کو ایک کی وضاحت کرنے کی ضرورت ہےmainفنکشن اور ایکonTickفنکشن.mainفنکشن حکمت عملی کا انٹری فنکشن ہے، اور پروگرام کوڈ لائن کی طرف سے لائن کو انجام دے گاmainفنکشن.mainفنکشن، لکھیںwhileلوپ اور بار بار عملدرآمدonTickفنکشن. حکمت عملی کے تمام بنیادی کوڈ میں لکھا ہےonTick function.

مرحلہ 2: پوزیشن ڈیٹا حاصل کریں

def get_position():
     position = 0 # The number of assigned positions is 0
     position_arr = _C(exchange.GetPosition) # Get array of positions
     if len(position_arr)> 0: # If the position array length is greater than 0
         for i in position_arr: # Traverse the array of positions
             if i['ContractType'] =='IH000': # If the position symbol is equal to the subscription symbol
                 if i['Type']% 2 == 0: # if it is long position
                     position = i['Amount'] # Assign a positive number of positions
                 else:
                     position = -i['Amount'] # Assign the number of positions to be negative
     return position # return position quantity

کیونکہ اس حکمت عملی میں، صرف حقیقی وقت کی پوزیشنوں کی تعداد کا استعمال کیا جاتا ہے، بحالی کو آسان بنانے کے لئے،get_positionیہاں پوزیشنوں کی مقدار کو احاطہ کرنے کے لئے استعمال کیا جاتا ہے۔ اگر موجودہ پوزیشن لمبی ہے تو ، یہ ایک مثبت نمبر لوٹاتا ہے ، اور اگر موجودہ پوزیشن مختصر ہے تو ، یہ منفی نمبر لوٹاتا ہے۔

مرحلہ 3: K لائن ڈیٹا حاصل کریں

exchange.SetContractType('IH000') # Subscribe to futures variety
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <10: # If the number of K lines is less than 10
     return

مخصوص K- لائن کے اعداد و شمار حاصل کرنے سے پہلے آپ کو پہلے ایک مخصوص تجارتی معاہدے کی رکنیت کرنی ہوگی،SetContractTypeفنکشن سےFMZ.COM، اور معاہدہ کوڈ میں منتقل. اگر آپ معاہدے کے بارے میں دیگر معلومات جاننا چاہتے ہیں تو، آپ کو بھی اس ڈیٹا کو حاصل کرنے کے لئے ایک متغیر استعمال کر سکتے ہیں.GetRecordsفنکشن K لائن ڈیٹا حاصل کرنے کے لئے، کیونکہ واپس ایک صف ہے، تو ہم متغیر استعمالbars_arrاسے قبول کرنے کے لئے.

مرحلہ 4: ایم وی وی کا حساب لگائیں

bar1 = bars_arr[-2] # Get the previous K-line data
bar2 = bars_arr[-3] # get the previous K-line data
# Calculate the value of mov_mid
mov_mid = (bar1['High'] + bar1['Low']) / 2-(bar2['High'] + bar2['Low']) / 2
if bar1['High'] != bar1['Low']: # If the dividend is not 0
     # Calculate the value of ratio
     ratio = (bar1['Volume'] / 10000) / (bar1['High']-bar1['Low'])
else:
     ratio = 0
# If the value of ratio is greater than 0
if ratio> 0:
     emv = mov_mid / ratio
else:
     emv = 0

یہاں ، ہم ای ایم وی کی قیمت کا حساب لگانے کے لئے تازہ ترین قیمت کا استعمال نہیں کرتے ہیں ، بلکہ سگنل کو آؤٹ پٹ کرنے اور آرڈر جاری کرنے کے لئے ایک K لائن رکھنے کے لئے نسبتا lagging موجودہ K لائن کا استعمال کرتے ہیں۔ اس کا مقصد بیک ٹیسٹ کو حقیقی تجارت کے قریب تر بنانا ہے۔ ہم جانتے ہیں کہ اگرچہ مقداری تجارتی سافٹ ویئر اب بہت ترقی یافتہ ہے ، لیکن پھر بھی حقیقی قیمت ٹِک ماحول کا مکمل طور پر تقلید کرنا مشکل ہے ، خاص طور پر جب بیک ٹیسٹنگ کے ساتھ سامنا کرنا پڑتا ہے بار کی سطح کے لمبے اعداد و شمار ، لہذا اس سمجھوتہ کا طریقہ استعمال کیا جاتا ہے۔

مرحلہ 5: احکامات کی جگہ

current_price = bars_arr[-1]['Close'] # latest price
position = get_position() # Get the latest position
if position> 0: # If you are holding long positions
    if emv <0: # If the current price is less than teeth
        exchange.SetDirection("closebuy") # Set the trading direction and type
        exchange.Sell(round(current_price-0.2, 2), 1) # close long position
if position <0: # If you are holding short positions
    if emv> 0: # If the current price is greater than the teeth
        exchange.SetDirection("closesell") # Set the trading direction and type
        exchange.Buy(round(current_price + 0.2, 2), 1) # close short position
if position == 0: # If there is no holding position
    if emv> 0: # If the current price is greater than the upper lip
        exchange.SetDirection("buy") # Set the trading direction and type
        exchange.Buy(round(current_price + 0.2, 2), 1) # open long position
    if emv <0: # if the current price is smaller than the chin
        exchange.SetDirection("sell") # Set the trading direction and type
        exchange.Sell(round(current_price-0.2, 2), 1) # open short position

آرڈر دینے سے پہلے ، ہمیں دو اعداد و شمار کا تعین کرنے کی ضرورت ہے ، ایک آرڈر کی قیمت ہے اور دوسرا موجودہ پوزیشن کی حیثیت ہے۔ آرڈر دینے کی قیمت بہت آسان ہے ، صرف موجودہ اختتامی قیمت کو شامل کرنے یا مختلف قسم کی کم سے کم تبدیلی کی قیمت کو گھٹانے کے لئے استعمال کریں۔ چونکہ ہم نے استعمال کیا ہےget_positionپوزیشن کو احاطہ کرنے کے لئے تقریب، ہم اسے براہ راست یہاں کال کر سکتے ہیں. آخر میں، پوزیشن EMV اور صفر محور کے درمیان پوزیشن تعلقات کے مطابق کھول دیا اور بند کر دیا جاتا ہے.

حکمت عملی کا بیک ٹسٹ

بیک ٹیسٹ کی ترتیب

img

بیک ٹسٹ لاگ

img img

دارالحکومت کا منحنی خطوط

img

مکمل حکمت عملی

# Backtest configuration
'''backtest
start: 2019-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''


def get_position():
     position = 0 # The number of assigned positions is 0
     position_arr = _C(exchange.GetPosition) # Get array of positions
     if len(position_arr)> 0: # If the position array length is greater than 0
         for i in position_arr: # Traverse the array of positions
             if i['ContractType'] =='IH000': # If the position symbol is equal to the subscription symbol
                 if i['Type']% 2 == 0: # if it is long position
                     position = i['Amount'] # Assign a positive number of positions
                 else:
                     position = -i['Amount'] # Assign the number of positions to be negative
     return position # return position quantity


# Strategy main function
def onTick():
     # retrieve data
     exchange.SetContractType('IH000') # Subscribe to futures
     bars_arr = exchange.GetRecords() # Get K-line array
     if len(bars_arr) <10: # If the number of K lines is less than 10
         return

     # Calculate emv
     bar1 = bars_arr[-2] # Get the previous K-line data
     bar2 = bars_arr[-3] # get the previous K-line data
     # Calculate the value of mov_mid
     mov_mid = (bar1['High'] + bar1['Low']) / 2-(bar2['High'] + bar2['Low']) / 2
     if bar1['High'] != bar1['Low']: # If the dividend is not 0
          # Calculate the value of ratio
          ratio = (bar1['Volume'] / 10000) / (bar1['High']-bar1['Low'])
     else:
          ratio = 0
     # If the value of ratio is greater than 0
     if ratio> 0:
          emv = mov_mid / ratio
     else:
          emv = 0

     # Placing orders
     current_price = bars_arr[-1]['Close'] # latest price
     position = get_position() # Get the latest position
     if position> 0: # If you are holding long positions
          if emv <0: # If the current price is less than teeth
               exchange.SetDirection("closebuy") # Set the trading direction and type
               exchange.Sell(round(current_price-0.2, 2), 1) # close long position
     if position <0: # If you are holding short positions
          if emv> 0: # If the current price is greater than the teeth
               exchange.SetDirection("closesell") # Set the trading direction and type
               exchange.Buy(round(current_price + 0.2, 2), 1) # close short position
     if position == 0: # If there is no holding position
          if emv> 0: # If the current price is greater than the upper lip
               exchange.SetDirection("buy") # Set the trading direction and type
               exchange.Buy(round(current_price + 0.2, 2), 1) # open long position
     if emv <0: # if the current price is smaller than the chin
               exchange.SetDirection("sell") # Set the trading direction and type
               exchange.Sell(round(current_price-0.2, 2), 1) # open short position

# Program entry
def main():
     while True: # Enter infinite loop mode
         onTick() # execution strategy main function
         Sleep(1000) # sleep for 1 second

مکمل حکمت عملی کو اسٹریٹیجی اسکوائر پر شائع کیا گیا ہےFMZ.COMویب سائٹ، اور اسے کاپی پر کلک کر کے استعمال کیا جا سکتا ہے.https://www.fmz.com/strategy/213636

خلاصہ

اس کورس کے ذریعے ، ہم دیکھ سکتے ہیں کہ ای ایم وی عام تاجروں کے برعکس ہے ، لیکن یہ غیر معقول نہیں ہے۔ چونکہ ای ایم وی حجم کے اعداد و شمار کو متعارف کراتا ہے ، لہذا یہ دوسرے تکنیکی اشارے سے زیادہ موثر ہے جو قیمت کے پیچھے کیا ہے اس کا پتہ لگانے کے لئے قیمت کے حساب کتاب کا استعمال کرتے ہیں۔ ہر حکمت عملی کی مختلف خصوصیات ہیں۔ صرف مختلف حکمت عملیوں کے فوائد اور نقصانات کو مکمل طور پر سمجھنے اور کچرے کو ہٹانے اور اس کے جوہر کو نکالنے سے ہی ہم کامیابی سے آگے بڑھ سکتے ہیں۔


متعلقہ

مزید