بہتر ٹولز بہتر کام کرتے ہیں - تجارتی اصولوں کا تجزیہ کرنے کے لئے تحقیقی ماحول کا استعمال کرنا سیکھیں

مصنف:لیدیہ, تخلیق: 2022-12-27 16:33:51, تازہ کاری: 2023-09-20 09:17:27

img

بہتر ٹولز اچھے کام کرتے ہیں تجارتی اصولوں کا تجزیہ کرنے کے لئے تحقیقی ماحول کا استعمال کرنا سیکھیں

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

ایف ایم زیڈ کوانٹ پلیٹ فارم کے ڈیش بورڈ میں، ٹول کے صفحے پر جانے کے لئے تجزیہ کریں پر کلک کریں:

img

یہاں میں تجزیہ فائل براہ راست اپ لوڈ: یہ تجزیہ دستاویز بیک ٹسٹنگ کے دوران فیوچر اسپاٹ ہیجنگ پوزیشن کھولنے اور بند کرنے کے عمل کا تجزیہ ہے۔ فیوچر ایکسچینج OKX فیوچر ہے ، اور معاہدہ ایک ہےquarterمعاہدہ۔ اسپاٹ ایکسچینج OKX کرنسی کرنسی ٹرانزیکشن ہے، اور ٹریڈنگ جوڑی ہےBTC_USDT. مستقبل کی جگہ ہیجنگ کے آپریشن کے عمل کا تجزیہ کرنے کے لئے، آپ کو مندرجہ ذیل مخصوص تحقیق کے ماحول کی فائل دیکھ سکتے ہیں، دو ورژن میں لکھا: ایک پائیتھون زبان ورژن، ایک جاوا اسکرپٹ زبان ورژن.

ریسرچ ماحولیات پائیتھون زبان فائل

فیوچر اسپاٹ ہیجنگ کے اصول پر تجزیہ میں [1]:

from fmz import *
task = VCtx('''backtest
start: 2019-09-19 00:00:00
end: 2019-09-28 12:00:00
period: 15m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD", "stocks":1}, {"eid":"OKX","currency":"BTC_USDT","balance":10000,"stocks":0}]
''')
# Create backtesting environment
import matplotlib.pyplot as plt
import numpy as np
# Import the plot library matplotlib and library numpy

[2] میں:

exchanges[0].SetContractType("quarter")    # The first exchange object OKX Futures (eid: Futures_OKCoin) calls the function to set the current contract as a quarterly contract
initQuarterAcc = exchanges[0].GetAccount() # The initial account information of OKX Futures Exchange is recorded in the variable initQuarterAcc
initQuarterAcc

باہر[2]: {توازن: 0.0، تھنڈا توازن: 0.0، اسٹاک: 1.0, تھنڈا اسٹاک: 0.0}

میں [3]:

initSpotAcc = exchanges[1].GetAccount()    # The initial account information of the OKX Spot Exchange is recorded in the variable initSpotAcc
initSpotAcc

آؤٹ [1]: {توازن: 10000.0، منجمد توازن: 0.0، اسٹاک: 0.0، منجمد اسٹاک: 0.0}

[4] میں:

quarterTicker1 = exchanges[0].GetTicker()  # Get the futures exchange ticker, recorded in the variable quarterTicker1
quarterTicker1

آؤٹ [4]: وقت: 1568851210000، ہائی: 10441.25002، کم : 10441.25, فروخت: 10441.25002، خریدیں: 10441.25, آخری : 10441.25001، جلد: 1772.0، اوپن انٹرسٹ: 0.0}

میں [5]:

spotTicker1 = exchanges[1].GetTicker()     # Get the spot exchange ticker, recorded in the variable spotTicker1
spotTicker1

باہر[5]: وقت: 1568851210000، ہائی: 10156.60000002، کم : 10156.6، فروخت: 10156.60000002، خریدیں: 10156.6، آخری : 10156.60000001، حجم: 7.4443، اوپن انٹرسٹ: 0.0}

[6] میں:

quarterTicker1.Buy - spotTicker1.Sell      # The price difference between going short on futures and going long on spot.

باہر[6]: 284.6499999799999985

میں [7]:

exchanges[0].SetDirection("sell")                       # Set up a futures exchange and trade in the direction of going short
quarterId1 = exchanges[0].Sell(quarterTicker1.Buy, 10)  # Futures go short to place orders. The order quantity is 10 contracts. The returned order ID is recorded in the variable quarterId1.
exchanges[0].GetOrder(quarterId1)                       # Check the details of the order with futures order ID quarterId1.

آؤٹ[7]: {ID: 1، قیمت: 10441.25, مقدار: 10.0، DealAmount: 10.0، اوسط قیمت : 10441.25, ٹائپ: 1، آفسیٹ: 0 حالت: 1، معاہدہ کی قسم: b سہ ماہی }

[8] میں:

spotAmount = 10 * 100 / quarterTicker1.Buy                 # Calculate the currency equivalent of 10 contracts as the order quantity of the spot.
spotId1 = exchanges[1].Buy(spotTicker1.Sell, spotAmount)   # Place orders on the spot exchange
exchanges[1].GetOrder(spotId1)                             # Check the order details of the spot order ID of spotId1

باہر[8]: {ID: 1،} قیمت : 10156.60000002، مقدار: 0.0957، ڈیل رقم: 0.0957، اوسط قیمت: 10156.60000002، ٹائپ: 0، آفسیٹ: 0، حالت: 1، ContractType: bBTC_USDT_OKX}

آپ دیکھ سکتے ہیں کہ آرڈر سہ ماہی ID1 اور اسپاٹ ID1 مکمل طور پر بھرا ہوا ہے، یعنی کھلی پوزیشنوں کی ہیجنگ مکمل ہو گئی ہے۔

[9] میں:

Sleep(1000 * 60 * 60 * 24 * 7)       # Hold the position for a while and wait for the price difference to become smaller to close the position.

انتظار کے وقت کے بعد، پوزیشن کو بند کرنے کے لئے تیار. موجودہ ٹکر حاصل کریںquarterTicker2, spotTicker2اور ان کو پرنٹ کریں. فیوچر ایکسچینج آبجیکٹ کی ٹرانزیکشن سمت مختصر پوزیشن کو بند کرنے کے لئے مقرر کی گئی ہے:exchanges[0].SetDirection("closesell")پوزیشن بند کرنے کا آرڈر دیں۔ بند ہونے والی پوزیشن کے آرڈر کی تفصیلات پرنٹ کریں، جس سے ظاہر ہوتا ہے کہ بند ہونے والا آرڈر مکمل ہو گیا ہے، بند ہونے والی پوزیشن ختم ہو گئی ہے۔

[10] میں:

quarterTicker2 = exchanges[0].GetTicker()     # Get the current futures exchange ticker, recorded in the variable quarterTicker2
quarterTicker2

باہر[10]: وقت: 1569456010000، ہائی: 8497.20002، کم : 8497.2، فروخت: 8497.20002، خریدیں: 8497.2، آخری : 8497.20001، حجم: 4311.0، اوپن انٹرسٹ: 0.0}

[11] میں:

spotTicker2 = exchanges[1].GetTicker()       # Get the current ticker of the spot exchange, recorded in the variable spotTicker2
spotTicker2

آؤٹ [11]: وقت: 1569456114600، ہائی: 8444.70000001، کم : 8444.69999999، فروخت: 8444.70000001، خریدیں: 8444.69999999، آخری : 8444.7، حجم: 78.6273، اوپن انٹرسٹ: 0.0}

میں [12]:

quarterTicker2.Sell - spotTicker2.Buy        # The price difference between closing a short futures position and closing a long spot position.

آؤٹ [1]: 52.5000200100003

[13] میں:

exchanges[0].SetDirection("closesell")                   # Set the current trading direction of the futures exchange to close short positions.
quarterId2 = exchanges[0].Buy(quarterTicker2.Sell, 10)   # The futures exchange places an order to close a position and records the order ID to the variable quarterId2.
exchanges[0].GetOrder(quarterId2)                        # Check futures close out order details

آؤٹ [1]: 2، قیمت: 8497.20002، مقدار: 10.0، DealAmount: 10.0، اوسط قیمت: 8493.95335، ٹائپ: 0 آفسیٹ: 1، حالت: 1، معاہدہ کی قسم: b سہ ماہی }

[14] میں:

spotId2 = exchanges[1].Sell(spotTicker2.Buy, spotAmount) # The spot exchange places an order to close a position and records the order ID, which is recorded to the variable spotId2.
exchanges[1].GetOrder(spotId2)      # Check spot close out order details

باہر[14]: {ID: 2، قیمت: 8444.69999999، مقدار: 0.0957، ڈیل رقم: 0.0957، اوسط قیمت: 8444.69999999، ٹائپ: 1، آفسیٹ: 0، حالت: 1، ContractType: bBTC_USDT_OKX}

[15] میں:

nowQuarterAcc = exchanges[0].GetAccount()   # Get the current futures exchange account information, recorded in the variable nowQuarterAcc.
nowQuarterAcc

باہر[15]: {توازن: 0.0، FrozenBalance: 0.0، اسٹاک : 1.021786026184، فروزن اسٹاک: 0.0}

[16] میں:

nowSpotAcc = exchanges[1].GetAccount()      # Get the current spot exchange account information, recorded in the variable nowSpotAcc.
nowSpotAcc

باہر[16]: {بائلنس: 9834.74705446،} FrozenBalance: 0.0، اسٹاک: 0.0، FrozenStocks: 0.0}

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

[17] میں:

diffStocks = abs(nowQuarterAcc.Stocks - initQuarterAcc.Stocks)
diffBalance = nowSpotAcc.Balance - initSpotAcc.Balance
if nowQuarterAcc.Stocks - initQuarterAcc.Stocks > 0 :
    print("profits:", diffStocks * spotTicker2.Buy + diffBalance)
else :
    print("profits:", diffBalance - diffStocks * spotTicker2.Buy)

باہر [1]: منافع: 18.72350977580652

اب آئیے دیکھتے ہیں کہ ہیجنگ منافع بخش کیوں ہے۔ ہم چارٹ کو ڈرا ہوا دیکھ سکتے ہیں۔ فیوچر کی قیمت نیلی لائن ہے اور اسپاٹ کی قیمت نارنجی لائن ہے۔ دونوں قیمتیں کم ہورہی ہیں۔ فیوچر کی قیمت اسپاٹ کی قیمت سے زیادہ تیزی سے کم ہورہی ہے۔

[18] میں:

xQuarter = [1, 2]
yQuarter = [quarterTicker1.Buy, quarterTicker2.Sell]

xSpot = [1, 2]
ySpot = [spotTicker1.Sell, spotTicker2.Buy]
plt.plot(xQuarter, yQuarter, linewidth=5)
plt.plot(xSpot, ySpot, linewidth=5)
plt.show()

باہر [1]:

img

آئیے قیمت کے فرق کی تبدیلی پر ایک نظر ڈالتے ہیں۔ قیمت کا فرق ہیجنگ اوپننگ پوزیشن کے وقت 284 (یعنی فیوچر شارٹ ، اور اسپاٹ لانگ) سے لے کر پوزیشن بند کرنے کے وقت 52 (فیوچر شارٹ پوزیشن بند ، اسپاٹ لانگ پوزیشن بند) تک ہے۔ قیمت کا فرق بڑے سے چھوٹے تک ہے۔

[19] میں:

xDiff = [1, 2]
yDiff = [quarterTicker1.Buy - spotTicker1.Sell, quarterTicker2.Sell - spotTicker2.Buy]
plt.plot(xDiff, yDiff, linewidth=5)
plt.show()

باہر [1]:

img

مثال کے طور پر، a1 وقت 1 پر فیوچر کی قیمت ہے، اور b1 وقت 1 پر اسپاٹ کی قیمت ہے۔ A2 وقت 2 پر فیوچر کی قیمت ہے، اور b2 وقت 2 پر اسپاٹ کی قیمت ہے۔جب تک کہ وقت 1 (a1-b1) میں فیوچر اسپاٹ قیمت کا فرق وقت 2 (a2-b2) میں فیوچر اسپاٹ قیمت کا فرق سے بڑا ہو ، a1 - a2> b1 - b2 متعارف کرایا جاسکتا ہے۔ تین صورتیں ہیں: (فیوچر اور اسپاٹ پوزیشنوں کی مقدار ایک جیسی ہے)

  1. a1 - a2 0 سے بڑا ہے، b1 - b2 0 سے بڑا ہے a1 - a2 فیوچر منافع کی قیمت کے فرق سے مراد ہے ، اور b1 - b2 اسپاٹ نقصانات کی قیمت کے فرق سے مراد ہے (کیونکہ اسپاٹ لمبا ہوگیا ، پوزیشن کو بند کرنے کے لئے خریدنے کی قیمت فروخت کی قیمت سے زیادہ ہے ، لہذا پیسہ ضائع ہوجاتا ہے) ، لیکن فیوچر منافع اسپاٹ نقصانات سے زیادہ ہے۔ لہذا یہ مجموعی طور پر منافع بخش ہے۔ یہ صورتحال مرحلہ میں گراف سے مطابقت رکھتی ہے۔ [8].

  2. a1 - a2 0 سے بڑا ہے، b1 - b2 0 سے کم ہے a1 - a2 فیوچر منافع کی قیمت کا فرق ہے، اور b1 - b2 اسپاٹ منافع کی قیمت کا فرق ہے (b1 - b2 0 سے کم ہے، جس سے یہ ظاہر ہوتا ہے کہ b2 b1 سے بڑا ہے، یعنی افتتاحی پوزیشن اور خریدنے کی قیمت کم ہے، اور فروخت اور بند ہونے کی قیمت زیادہ ہے، لہذا یہ منافع بخش ہے).

  3. a1 - a2 0 سے کم، b1 - b2 0 سے کم a1 - a2 فیوچر نقصانات کی قیمت کا فرق ہے ، اور b1 - b2 اسپاٹ منافع کی قیمت کا فرق ہے۔ چونکہ a1 - a2 > b1 - b2 ، a1 - a2 کی مطلق قیمت b1 - b2 کی مطلق قیمت سے کم ہے ، اور اسپاٹ منافع فیوچر نقصانات سے زیادہ ہے۔ یہ مجموعی طور پر منافع بخش ہے۔

ایسی کوئی صورت نہیں ہے جہاں a1 - a2 0 سے کم ہو اور b1 - b2 0 سے زیادہ ہو ، کیونکہ a1 - a2 > b1 - b2 کی وضاحت کی گئی ہے۔ اسی طرح ، اگر a1 - a2 0 کے برابر ہے ، کیونکہ a1 - a2 > b1 - b2 کی وضاحت کی گئی ہے ، b1 - b2 0 سے کم ہونا ضروری ہے۔ لہذا ، جب تک مختصر فیوچر اور لانگ اسپاٹ کے ہیجنگ کا طریقہ a1 - b1 > a2 - b2 کی شرائط کو پورا کرتا ہے ، تب تک پوزیشن کھولنے اور بند کرنے کی کارروائیوں کو منافع ہیجنگ کہا جاتا ہے۔

مثال کے طور پر، مندرجہ ذیل ماڈل ایک کیس ہے:

[20] میں:

a1 = 10
b1 = 5
a2 = 11
b2 = 9

# a1 - b1 > a2 - b2 launches: a1 - a2 > b1 - b2

xA = [1, 2]
yA = [a1, a2]

xB = [1, 2]
yB = [b1, b2]
plt.plot(xA, yA, linewidth=5)
plt.plot(xB, yB, linewidth=5)
plt.show()

باہر[20]:

img

تلاش کا ماحول جاوا اسکرپٹ زبان فائل

ریسرچ ماحولیات نہ صرف پائتھون، بلکہ جاوا اسکرپٹ کی حمایت کرتا ہے میں جاوا اسکرپٹ ریسرچ ماحول کا ایک مثال بھی دیتا ہوں:

فیوچر اسپاٹ ہیجنگ کے اصول کا تجزیہ (جاوا اسکرپٹ).ipynb میں [1]:

// Import the required package, click "Save settings" on the FMZ's "Strategy editing page" to get the string configuration and convert it to an object.
var fmz = require("fmz")                           // Import the talib, TA, and plot libraries automatically after import
var task = fmz.VCtx({
start: '2019-09-19 00:00:00',
end: '2019-09-28 12:00:00',
period: '15m',
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD","stocks":1},{"eid":"OKX","currency":"BTC_USDT","balance":10000,"stocks":0}]
})

[2] میں:

exchanges[0].SetContractType("quarter")  // The first exchange object OKX Futures (eid: Futures_OKCoin) calls the function to set the current contract as a quarterly contract.
var initQuarterAcc = exchanges[0].GetAccount()  // The initial account information of OKX Futures Exchange is recorded in the variable initQuarterAcc.
initQuarterAcc

باہر[2]: { توازن: 0، منجمد توازن: 0، اسٹاک: 1، منجمد اسٹاک: 0 }

میں [3]:

var initSpotAcc = exchanges[1].GetAccount()     // The initial account information of the OKX Spot Exchange is recorded in the variable initSpotAcc.
initSpotAcc

آؤٹ [1]: { توازن: 10000، منجمد توازن: 0، اسٹاک: 0، منجمد اسٹاک: 0 }

[4] میں:

var quarterTicker1 = exchanges[0].GetTicker()   // Get the futures exchange ticker, recorded in the variable quarterTicker1.
quarterTicker1

آؤٹ [4]: { وقت: 1568851210000، اعلی: 10441.25002، کم: 10441.25. فروخت: 10441.25002، خریدیں: 10441.25, آخری: 10441.25001، جلد: 1772، کھلی دلچسپی: 0 }

میں [5]:

var spotTicker1 = exchanges[1].GetTicker()     // Get the spot exchange ticker, recorded in the variable spotTicker1.
spotTicker1

باہر[5]: { وقت: 1568851210000، اعلی: 10156.60000002، کم: 10156.6، فروخت: 10156.60000002، خریدیں: 10156.6، آخری: 10156.60000001، حجم: 7.4443، کھلی دلچسپی: 0 }

[6] میں:

quarterTicker1.Buy - spotTicker1.Sell         // The price difference between going short on futures and going long on spot.

باہر[6]: 284.64999997999985 میں [7]:

exchanges[0].SetDirection("sell")             // Set up a futures exchange and trade in the direction of going short
var quarterId1 = exchanges[0].Sell(quarterTicker1.Buy, 10)  // Go short futures to place orders. The order quantity is 10 contracts. The returned order ID is recorded in the variable quarterId1.
exchanges[0].GetOrder(quarterId1)                           // Check the details of the order with futures order ID quarterId1.

آؤٹ[7]: { شناخت: 1، قیمت: 10441.25، رقم: 10، ڈیل رقم: 10، اوسط قیمت: 10441.25. قسم: 1، آفسیٹ: 0، حالت: 1، معاہدہ کی قسم: سہ ماہی }

[8] میں:

var spotAmount = 10 * 100 / quarterTicker1.Buy                  // Calculate the currency equivalent of 10 contracts as the order quantity of the spot.
var spotId1 = exchanges[1].Buy(spotTicker1.Sell, spotAmount)    // Place orders on the spot exchange.
exchanges[1].GetOrder(spotId1)                                  // Check the order details of the spot order ID of spotId1.

باہر[8]: { شناخت: 1، قیمت: 10156.60000002، رقم: 0.0957، ڈیل رقم: 0.0957، اوسط قیمت: 10156.60000002، قسم: 0 آفسیٹ: 0 حالت: 1، ContractType: BTC_USDT_OKX }

آپ دیکھ سکتے ہیں کہ آرڈر کوارٹرId1 اور اسپاٹId1 مکمل طور پر پورا ہوچکے ہیں، یعنی افتتاحی پوزیشنوں کی ہیجنگ مکمل ہوچکی ہے۔

[9] میں:

Sleep(1000 * 60 * 60 * 24 * 7)            // Hold the position for a while and wait for the price difference to become smaller to close the position.

انتظار کے وقت کے بعد، پوزیشن کو بند کرنے کے لئے تیار. موجودہ ٹکر حاصل کریںquarterTicker2, spotTicker2اور ان کو پرنٹ کریں. فیوچر ایکسچینج آبجیکٹ کی ٹرانزیکشن سمت مختصر پوزیشن کو بند کرنے کے لئے مقرر کی گئی ہے:exchanges[0].SetDirection("closesell")پوزیشن بند کرنے کا آرڈر دیں۔ بند ہونے والی پوزیشن کے آرڈر کی تفصیلات پرنٹ کریں، جس سے ظاہر ہوتا ہے کہ بند ہونے والا آرڈر مکمل ہو گیا ہے، بند ہونے والی پوزیشن ختم ہو گئی ہے۔

[10] میں:

var quarterTicker2 = exchanges[0].GetTicker()    // Get the current futures exchange ticker, recorded in the variable quarterTicker2.
quarterTicker2

باہر[10]: { وقت: 1569456010000،} اعلی: 8497.20002، کم: 8497.2، فروخت: 8497.20002، خریدیں: 8497.2، آخری: 8497.20001، حجم: 4311، کھلی دلچسپی: 0 }

[11] میں:

var spotTicker2 = exchanges[1].GetTicker()       // Get the current ticker of the spot exchange, recorded in the variable spotTicker2.
spotTicker2

آؤٹ [11]: { وقت: 1569456114600، اعلی: 8444.70000001، کم: 8444.69999999، فروخت: 8444.70000001، خریدیں: 8444.69999999، آخری: 8444.7، حجم: 78.6273، کھلی دلچسپی: 0 }

میں [12]:

quarterTicker2.Sell - spotTicker2.Buy            // The price difference between closing short position of futures and closing long position of spot.

آؤٹ [1]: 52.5000200100003

[13] میں:

exchanges[0].SetDirection("closesell")           // Set the current trading direction of the futures exchange to close short positions.
var quarterId2 = exchanges[0].Buy(quarterTicker2.Sell, 10)       // The futures exchange places an order to close the position, and records the order ID to the variable quarterId2.
exchanges[0].GetOrder(quarterId2)                                // Check futures closing position order details.

آؤٹ [1]: { شناخت: 2، قیمت: 8497.20002، رقم: 10، ڈیل رقم: 10، اوسط قیمت: 8493.95335، قسم: 0 آفسیٹ: 1، حالت: 1، معاہدہ کی قسم: سہ ماہی }

[14] میں:

var spotId2 = exchanges[1].Sell(spotTicker2.Buy, spotAmount)     // The spot exchange places an order to close the position, and records the order ID to the variable spotId2.
exchanges[1].GetOrder(spotId2)                                   // Check spot closing position order details.

باہر [1]: { شناخت: 2، قیمت: 8444.69999999، رقم: 0.0957، ڈیل رقم: 0.0957، اوسط قیمت: 8444.69999999، قسم: 1، آفسیٹ: 0 حالت: 1، ContractType: BTC_USDT_OKX }

[15] میں:

var nowQuarterAcc = exchanges[0].GetAccount()     // Get the current futures exchange account information, recorded in the variable nowQuarterAcc.
nowQuarterAcc                                     

باہر[15]: { توازن: 0، منجمد بیلنس: 0، ذخائر: 1.021786026184، FrozenStocks: 0 }

[16] میں:

var nowSpotAcc = exchanges[1].GetAccount()        // Get the current spot exchange account information, recorded in the variable nowSpotAcc.
nowSpotAcc

باہر[16]: { بیلنس: 9834.74705446، منجمد بیلنس: 0، ذخائر: 0 منجمد اسٹاک: 0 } ابتدائی اکاؤنٹ کو کرنٹ اکاؤنٹ سے موازنہ کرکے ہیجنگ آپریشن کے منافع اور نقصان کا حساب لگایا جاتا ہے۔

[17] میں:

var diffStocks = Math.abs(nowQuarterAcc.Stocks - initQuarterAcc.Stocks)
var diffBalance = nowSpotAcc.Balance - initSpotAcc.Balance
if (nowQuarterAcc.Stocks - initQuarterAcc.Stocks > 0) {
    console.log("profits:", diffStocks * spotTicker2.Buy + diffBalance)
} else {
    console.log("profits:", diffBalance - diffStocks * spotTicker2.Buy)
}

باہر [1]: منافع: 18.72350977580652

اب آئیے دیکھتے ہیں کہ ہیجنگ منافع بخش کیوں ہے۔ ہم چارٹ کو ڈرا ہوا دیکھ سکتے ہیں۔ فیوچر کی قیمت نیلی لائن ہے اور اسپاٹ کی قیمت نارنجی لائن ہے۔ دونوں قیمتیں کم ہورہی ہیں۔ فیوچر کی قیمت اسپاٹ کی قیمت سے زیادہ تیزی سے کم ہورہی ہے۔

[18] میں:

var objQuarter = {
    "index" : [1, 2],                                          // The index is 1, that is, the first time, the opening time, and 2 is the closing time.
    "arrPrice" : [quarterTicker1.Buy, quarterTicker2.Sell],
}
var objSpot = {
    "index" : [1, 2],
    "arrPrice" : [spotTicker1.Sell, spotTicker2.Buy],
}
plot([{name: 'quarter', x: objQuarter.index, y: objQuarter.arrPrice}, {name: 'spot', x: objSpot.index, y: objSpot.arrPrice}])

باہر [1]: آئیے قیمت کے فرق کی تبدیلی پر ایک نظر ڈالتے ہیں۔ قیمت کا فرق ہیجنگ اوپننگ پوزیشنوں کے وقت 284 (یعنی فیوچر مختصر ہو گئے ، اور اسپاٹ لمبا ہو گیا) سے بند ہونے کے وقت 52 (فیوچر کی مختصر پوزیشن بند ، اور اسپاٹ کی طویل پوزیشن بند) تک ہے۔ قیمت کا فرق بڑے سے چھوٹے تک ہے۔

[19] میں:

var arrDiffPrice = [quarterTicker1.Buy - spotTicker1.Sell, quarterTicker2.Sell - spotTicker2.Buy]
plot(arrDiffPrice)

باہر [1]:مثال کے طور پر، a1 وقت 1 پر فیوچر کی قیمت ہے، اور b1 وقت 1 پر اسپاٹ کی قیمت ہے۔ A2 وقت 2 پر فیوچر کی قیمت ہے، اور b2 وقت 2 پر اسپاٹ کی قیمت ہے۔جب تک کہ وقت 1 (a1-b1) میں فیوچر اسپاٹ قیمت کا فرق وقت 2 (a2-b2) میں فیوچر اسپاٹ قیمت کا فرق سے بڑا ہو ، a1 - a2> b1 - b2 متعارف کرایا جاسکتا ہے۔ تین صورتیں ہیں: (فیوچر اور اسپاٹ پوزیشنوں کی مقدار ایک جیسی ہے)

  1. a1 - a2 0 سے بڑا ہے، b1 - b2 0 سے بڑا ہے a1 - a2 فیوچر منافع کی قیمت کے فرق سے مراد ہے ، اور b1 - b2 اسپاٹ نقصانات کی قیمت کے فرق سے مراد ہے (کیونکہ اسپاٹ لمبا ہوگیا ، پوزیشن کو بند کرنے کے لئے خریدنے کی قیمت فروخت کی قیمت سے زیادہ ہے ، لہذا پیسہ ضائع ہوجاتا ہے) ، لیکن فیوچر منافع اسپاٹ نقصانات سے زیادہ ہے۔ لہذا یہ مجموعی طور پر منافع بخش ہے۔ یہ صورتحال مرحلہ میں گراف سے مطابقت رکھتی ہے۔ [8].

  2. a1 - a2 0 سے بڑا ہے، b1 - b2 0 سے کم ہے a1 - a2 فیوچر منافع کی قیمت کا فرق ہے، اور b1 - b2 اسپاٹ منافع کی قیمت کا فرق ہے (b1 - b2 0 سے کم ہے، جس سے یہ ظاہر ہوتا ہے کہ b2 b1 سے بڑا ہے، یعنی افتتاحی پوزیشن اور خریدنے کی قیمت کم ہے، اور فروخت اور بند ہونے کی قیمت زیادہ ہے، لہذا یہ منافع بخش ہے).

  3. a1 - a2 0 سے کم، b1 - b2 0 سے کم a1 - a2 فیوچر نقصانات کی قیمت کا فرق ہے ، اور b1 - b2 اسپاٹ منافع کی قیمت کا فرق ہے۔ چونکہ a1 - a2 > b1 - b2 ، a1 - a2 کی مطلق قیمت b1 - b2 کی مطلق قیمت سے کم ہے ، اور اسپاٹ منافع فیوچر نقصانات سے زیادہ ہے۔ یہ مجموعی طور پر منافع بخش ہے۔

ایسی کوئی صورت نہیں ہے جہاں a1 - a2 0 سے کم ہو اور b1 - b2 0 سے زیادہ ہو ، کیونکہ a1 - a2 > b1 - b2 کی وضاحت کی گئی ہے۔ اسی طرح ، اگر a1 - a2 0 کے برابر ہے ، کیونکہ a1 - a2 > b1 - b2 کی وضاحت کی گئی ہے ، b1 - b2 0 سے کم ہونا ضروری ہے۔ لہذا ، جب تک مختصر فیوچر اور لانگ اسپاٹ کے ہیجنگ کا طریقہ a1 - b1 > a2 - b2 کی شرائط کو پورا کرتا ہے ، تب تک پوزیشن کھولنے اور بند کرنے کی کارروائیوں کو منافع ہیجنگ کہا جاتا ہے۔

مثال کے طور پر، مندرجہ ذیل ماڈل ایک کیس ہے:

[20] میں:

var a1 = 10
var b1 = 5
var a2 = 11
var b2 = 9

// a1 - b1 > a2 - b2 launches: a1 - a2 > b1 - b2

var objA = {
    "index" : [1, 2],
    "arrPrice" : [a1, a2],
}
var objB = {
    "index" : [1, 2],
    "arrPrice" : [b1, b2],
}
plot([{name : "a", x : objA.index, y : objA.arrPrice}, {name : "b", x : objB.index, y : objB.arrPrice}])

باہر[20]:

اسے آزمائیں، لوگ!


متعلقہ

مزید