کچھ لوگ لفظ
خام مال کے فیوچر مارکیٹ میں ، نظریاتی طور پر ، مئی میں فراہم کردہ ایپل کنٹریکٹ کی قیمت کو مائنس کر کے اکتوبر میں فراہم کردہ ایپل کنٹریکٹ کی قیمت ، نتیجہ صفر کے قریب ہونا چاہئے یا ایک خاص قیمت کی حد میں مستحکم ہونا چاہئے۔ لیکن حقیقت میں ، موسم ، مارکیٹ کی رسد اور طلب اور دیگر عوامل کی وجہ سے ، مختصر مدت اور طویل مدتی معاہدوں کی قیمت ایک عرصے میں مختلف ڈگری تک متاثر ہوگی ، اور قیمت کا فرق بھی نمایاں طور پر اتار چڑھاؤ کرے گا۔
لیکن کسی بھی صورت میں ، قیمت کا فرق آخر کار ایک خاص قیمت کی حد تک واپس آجائے گا ، پھر اگر قیمت کا فرق اس حد سے زیادہ ہے تو ، مئی کے معاہدے کو مختصر فروخت کریں ، اور اکتوبر کے معاہدے کو ایک ہی وقت میں خریدیں ، منافع کمانے کے لئے فرق کو مختصر کریں۔ اگر قیمت کا فرق اس حد سے کم ہے تو ، مئی کے معاہدے کو خریدیں ، اسی وقت اکتوبر کے معاہدے کو مختصر فروخت کریں ، پھیلاؤ کو خریدنے سے منافع حاصل کریں۔ یہ ایک ہی قسم کی خریداری اور فروخت کے ذریعہ انٹر ٹائمورل آربراجیج ہے لیکن مختلف ترسیل کے مہینوں میں۔
انٹرمورل آربیٹریج کے علاوہ ، کراس مارکیٹ آربیٹریج بھی موجود ہیں جیسے برآمد کرنے والے ممالک سے سویا بین خریدنا جبکہ درآمد کرنے والے ممالک سے سویا بین فروخت کرنا ، یا برآمد کرنے والے ممالک سے سویا بین فروخت کرنا اور درآمد کرنے والے ممالک سے سویا بین درآمد کرنا ، اگلا سلسلہ خام مال ، آئرن رس خریدنا اور تیار شدہ thread اسٹیل کو نیچے بیچنا ، یا اگلا سلسلہ خام مال آئرن رس بیچنا جبکہ اگلا سلسلہ تیار شدہ ریبر آربیٹریج خریدنا ، وغیرہ۔
اگرچہ مذکورہ بالا ثالثی کے طریقے لفظی طور پر
اس کو آسانی سے بیان کرنے کے لئے ، سب سے زیادہ پیچیدہ لنک اجناس کی اسپاٹ ٹریڈنگ ہے ، جس میں گودام کی رسیدیں ، ٹیکس لگانا وغیرہ جیسے امور کا ایک سلسلہ شامل ہے۔ سب سے پہلے ، سرمایہ کاری کے دائرہ کار سے متعلق ایک کمپنی کی ضرورت ہے۔ اگر یہ معاہدہ کی ترسیل کی ثالثی فیوچر اکاؤنٹ ہے تو ، یہ ایک کارپوریٹ قانونی شخص ہونا ضروری ہے۔ اگر ڈبل قریبی پوزیشن ثالثی کی ضرورت ہے تو ، ایک قابل اعتماد فروخت چینل کی ضرورت ہے۔ آن لائن اسپاٹ ٹریڈنگ کی بہت سی ویب سائٹیں ہیں۔
یہ نوٹ کیا جانا چاہئے کہ اسپاٹ ٹرانزیکشنز میں عام طور پر 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), پر کلک کریں
# 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
فنکشن حکمت عملی کا بنیادی فنکشن ہے ، بنیادی طور پر بنیادی کوڈ کو انجام دیں.
# 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.
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
بنیادی ڈیٹا کوڈ کو کال کرنے کے لئے تقریب، اور ٹائم اسٹیمپ پر مشتمل ہے کہ لغت کے اعداد و شمار واپس.
# 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
ثالثی اتنا پیچیدہ نہیں ہے جتنا تصور کیا جاتا ہے۔ اس کے لئے مالی نظریہ کے بہت زیادہ علم کی ضرورت نہیں ہے ، اور نہ ہی اس کے لئے بہت پیچیدہ ریاضیاتی یا شماریاتی ماڈلز کی ضرورت ہے۔ ثالثی بنیادی طور پر غیر معقول قیمت سے معقول واپسی تک منافع کمانا ہے۔ مارکیٹ کے حالات ہر سال بدلتے رہتے ہیں۔ تاجروں کے لئے ، موجودہ اعداد و شمار کی نقل نہ کرنا ، بلکہ موجودہ اعداد و شمار کو یکجا کرنا بہتر ہے تاکہ یہ مطالعہ کیا جاسکے کہ قیمت کا پھیلاؤ معقول ہے یا نہیں۔