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

FMZ کے بنیادی اعداد و شمار پر مبنی اجناس "فیوچر اور اسپاٹ" کی ثالثی کا چارٹ

مصنف:نیکی, تخلیق: 2020-06-17 10:59:26, تازہ کاری: 2023-11-01 20:28:10

img

خلاصہ

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

ثالثی کیا ہے؟

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

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

انٹرمورل آربیٹریج کے علاوہ ، کراس مارکیٹ آربیٹریج بھی موجود ہیں جیسے برآمد کرنے والے ممالک سے سویا بین خریدنا جبکہ درآمد کرنے والے ممالک سے سویا بین فروخت کرنا ، یا برآمد کرنے والے ممالک سے سویا بین فروخت کرنا اور درآمد کرنے والے ممالک سے سویا بین درآمد کرنا ، اگلا سلسلہ خام مال ، آئرن رس خریدنا اور تیار شدہ thread اسٹیل کو نیچے بیچنا ، یا اگلا سلسلہ خام مال آئرن رس بیچنا جبکہ اگلا سلسلہ تیار شدہ ریبر آربیٹریج خریدنا ، وغیرہ۔

کیا ہے مستقبل اور مقامات ثالثی

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

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

  • اسپیڈ = فیوچر کی قیمت - اسپاٹ قیمت

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

خام مال فیوچر اور اسپاٹ آربیٹریج چینل

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

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

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

اسپاٹ اور اسپریڈ ڈیٹا حاصل کرنے کا طریقہ

آن لائن بہت ساری قسم کے اسپاٹ اور اسپریڈ ڈیٹا موجود ہیں ، جن میں سے بیشتر ٹیبلز کی شکل میں پیش کیے جاتے ہیں ، جو ظاہر ہے کہ مارکیٹ کے تجزیہ اور فیصلہ کرنے کے لئے موزوں نہیں ہے۔ FMZ کوانٹ ٹریڈنگ پلیٹ فارم (FMZ.COM) میں کموڈٹی فیوچر کے بنیادی اعداد و شمار شامل ہیں ، بشمول اسپاٹ ڈیٹا اور اسپریڈ ڈیٹا۔ ہر قسم کی اسپاٹ اور اسپریڈ قیمت حاصل کرنے کے لئے صرف ایک فنکشن کو کال کرنے کی ضرورت ہے ، اور 2016 سے لے کر آج تک کے تاریخی اعداد و شمار کی حمایت کریں۔

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

# Strategy entry
def main():
    while True:
        ret = exchange.GetData("GDP")  # Calling GDP data
        Log(ret)  # Print data
        Sleep(1000 * 60 * 60 * 24 * 30)

نتیجہ واپس کریں

{
     "Quarterly": "Q1 2006",
     "GDP": {
         "Absolute Value (100 million yuan)": 47078.9,
         "YoY Growth": 0.125
     },
     "primary industry": {
         "Absolute Value (100 million yuan)": 3012.7,
         "YoY Growth": 0.044
     },
     "Tertiary Industry": {
         "Absolute Value (100 million yuan)": 22647.4,
         "YoY Growth": 0.131
     },
     "Secondary industry": {
         "Absolute Value (100 million yuan)": 21418.7,
         "YoY Growth": 0.131
     }
}

اسپاٹ اور اسپریڈ چارٹ کا نفاذ

آئیے ایف ایم زیڈ پلیٹ فارم کا استعمال کرتے ہوئے چارٹ کی شکل میں اسپاٹ قیمتوں اور اسپریڈ قیمتوں کو مقداری اور حقیقت بناتے ہیں۔ سب سے پہلے ، ایف ایم زیڈ کی ویب سائٹ پر اندراج اور لاگ ان کریں (FMZ.COM), پر کلک کریں ڈیش بورڈ , اور کلک کریں حکمت عملی لائبریری + نئی حکمت عملی. اوپر بائیں کونے میں ڈراپ ڈاؤن مینو میں پطرون کو منتخب کریں اور حکمت عملی کا نام بھریں.

مرحلہ 1: حکمت عملی کا فریم ورک لکھیں

# Strategy main function
def onTick():
     pass


# Strategy entrance
def main():
     while True: # Enter loop mode
         onTick() # execution strategy main function
         Sleep(1000 * 60 * 60 * 24) # Strategy sleep for one day

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

مرحلہ 2: چارٹ فنکشن شامل کرنا

# Global variables
# Futures and Spots chart
cfgA = {
    "extension": {
        "layout":'single',
        "col": 6,
        "height": "500px",
    },
    "title": {
        "text": "futures and spots chart"
    },
    "xAxis": {
        "type": "datetime"
    },
    "series": [{
        "name": "Futures Price",
        "data": [],
    }, {
        "name": "Spot Price",
        "data": [],
    }
    ]
}
# Spread chart
cfgB = {
    "extension": {
        "layout":'single',
        "col": 6,
        "height": "500px",
    },
    "title": {
        "text": "Spread chart"
    },
    "xAxis": {
        "type": "datetime"
    },
    "series": [{
        "name": "Spread Price",
        "data": [],
    }]
}
chart = Chart([cfgA, cfgB]) # Create a chart object


# Strategy main function
def onTick():
    chart.add(0, []) # draw chart
    chart.add(1, []) # draw chart
    chart.add(2, []) # draw chart
    chart.update([cfgA, cfgB]) # update chart


# Strategy entrance
def main():
    LogReset() # Clear the previous log information before running
    chart.reset() # Clear the previous chart information before running
    while True: # Enter loop mode
        onTick() # execution strategy main function
        Sleep(1000 * 60 * 60 * 24) # Strategy sleep for one day

اس حکمت عملی میں مجموعی طور پر 2 چارٹ بنائے گئے ہیں اور انہیں ایک دوسرے کے ساتھ ترتیب دیا گیا ہے۔cfgAبائیں جانب ایک موجودہ چارٹ ہے، جس میں فیوچر کی قیمتیں اور اسپاٹ کی قیمتیں شامل ہیں اورcfgBدائیں جانب ایک پھیلاؤ چارٹ ہے۔ پھر چارٹ آبجیکٹ بنانے کے لئے ایف ایم زیڈ پلیٹ فارم بلٹ ان پائیتھون لائن ڈرائنگ لائبریری کو کال کریں۔ آخر میں چارٹ میں موجود ڈیٹا کو ریئل ٹائم میں اپ ڈیٹ کیا جاتا ہےonTick function.

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

last_spot_price = 0 # Save the last valid spot price
last_spread_price = 0 # Save the last valid spread price

def onTick():
    global last_spread_price, last_spot_price # import global variables
    exchange.SetContractType("i888") # Subscribe to futures varieties
    futures = _C(exchange.GetRecords)[-1] # Get the latest K line data
    futures_ts = futures.Time # Get the latest K-line futures timestamp
    futures_price = futures.Close # Get the latest K-line closing price

    spot = exchange.GetData("SPOTPRICE") # Get spot data
    spot_ts = spot.Time # Get spot timestamp
    if 'iron ore' in spot.Data:
        spot_price = spot.Data['iron ore']
        last_spot_price = spot_price
    else:
        spot_price = last_spot_price

    spread = exchange.GetData("spread") # Get spread data
    spread_ts = spread.Time # Get spread timestamp
    if 'iron ore' in spread.Data:
        spread_price = spread.Data['iron ore']
        last_spread_price = spread_price
    else:
        spread_price = last_spread_price

مجموعی طور پر ، ہمیں تین قسم کے اعداد و شمار حاصل کرنے کی ضرورت ہے: فیوچر کی قیمت ، اسپاٹ قیمت ، اور اسپریڈ قیمت۔ فیوچر کی قیمت حاصل کرنا آسان ہے۔SetContractTypeبراہ راست فیوچر علامت کو سبسکرائب کرنے کی تقریب، اور پھر استعمال کریںGetRecordsکے لائن کی بندش کی قیمت حاصل کرنے کے لئے تقریب. اسپاٹ اور پھیلاؤ کی قیمتوں کے لئے آپ کو پہلے متعارف کرایا طریقہ استعمال کر سکتے ہیں،GetDataبنیادی ڈیٹا کوڈ کو کال کرنے کے لئے تقریب، اور ٹائم اسٹیمپ پر مشتمل ہے کہ لغت کے اعداد و شمار واپس.

چارٹ ڈسپلے

img img img

مکمل حکمت عملی کوڈ حاصل کریں

# fmz@b72930603791887d7452f25f23a13bde
'''backtest
start: 2017-01-01 00:00:00
end: 2020-06-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''


# Global variables
# Futures and Spots chart
cfgA = {
    "extension": {
        "layout":'single',
        "col": 6,
        "height": "500px",
    },
    "title": {
        "text": "futures and spots chart"
    },
    "xAxis": {
        "type": "datetime"
    },
    "series": [{
        "name": "Futures Price",
        "data": [],
    }, {
        "name": "Spot Price",
        "data": [],
    }
    ]
}
# spread chart
cfgB = {
    "extension": {
        "layout":'single',
        "col": 6,
        "height": "500px",
    },
    "title": {
        "text": "spread chart"
    },
    "xAxis": {
        "type": "datetime"
    },
    "series": [{
        "name": "spread Price",
        "data": [],
    }]
}
last_spot_price = 0 # Save the last valid spot price
last_spread_price = 0 # Save the last valid spread price
chart = Chart([cfgA, cfgB]) # Create a chart object

def onTick():
    global last_spread_price, last_spot_price # import global variables
    exchange.SetContractType("i888") # Subscribe to futures varieties
    futures = _C(exchange.GetRecords)[-1] # Get the latest candlestick data
    futures_ts = futures.Time # Get the latest K-line futures timestamp
    futures_price = futures.Close # Get the latest K-line closing price
    Log('Future price:', futures_ts, futures_price)

    spot = exchange.GetData("SPOTPRICE") # Get spot data
    spot_ts = spot.Time # Get spot timestamp
    if 'iron ore' in spot.Data:
        spot_price = spot.Data['iron ore']
        last_spot_price = spot_price
    else:
        spot_price = last_spot_price
    Log('Spot price:', spot_ts, spot_price)

    spread = exchange.GetData("spread") # Get spread data
    spread_ts = spread.Time # Get spread timestamp
    if 'iron ore' in spread.Data:
        spread_price = spread.Data['iron ore']
        last_spread_price = spread_price
    else:
        spread_price = last_spread_price
    Log('spread price:', spread_ts, spread_price)

    chart.add(0, [futures_ts, futures_price]) # draw chart
    chart.add(1, [spot_ts, spot_price]) # draw chart
    chart.add(2, [spread_ts, spread_price]) # draw chart
    chart.update([cfgA, cfgB]) # update chart
    Log('---------')


# Strategy entrance
def main():
    LogReset() # Clear the previous log information before running
    chart.reset() # Clear the previous chart information before running
    while True: # Enter loop mode
        onTick() # execution strategy main function
        Sleep(1000 * 60 * 60 * 24) # Strategy sleep for one day

مکمل حکمت عملی ایف ایم زیڈ پلیٹ فارم پر پوسٹ کی گئی ہے (FMZ.COM) حکمت عملی مربع، یہ نیچے دیئے گئے لنک پر کلک کرکے براہ راست استعمال کیا جا سکتا ہے.

https://www.fmz.com/strategy/211941

اختتام

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


متعلقہ

مزید