فنڈز کے فعال بہاؤ پر مبنی تجارتی حکمت عملی

مصنف:نیکی, تخلیق: 2020-08-01 09:50:44, تازہ کاری: 2023-10-11 19:56:26

img

خلاصہ

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

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

کیپٹل فلو کا استعمال کیوں کریں

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

پہلے اس کے بارے میں سوچئے، قیمت کیوں بڑھتی ہے؟

آپ کہہ سکتے ہیں، کیونکہ: ملک متعلقہ صنعتی پالیسیوں کی حمایت کرتا ہے، اصل ملک بارش کی بارش ہے، بین الاقوامی تجارتی جنگ، MACD گولڈن فورک خریدا جاتا ہے، دوسروں نے اسے خریدا ہے، وغیرہ.

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

فنڈز کے بہاؤ کا اصول

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

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

فنڈز کے بہاؤ کے حساب کا طریقہ

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

سب سے پہلے، اگر موجودہ آرڈر کی موجودہ ٹرانزیکشن کی قیمت کو ہم منصب کی قیمت پر یا زیادہ قیمت پر عملدرآمد کیا جاتا ہے تو، خرید ٹرانزیکشن کی قیمت >= فروخت ٹرانزیکشن کی قیمت، جس کا مطلب یہ ہے کہ خریدار زیادہ قیمت پر ٹرانزیکشن کو مکمل کرنے کے لئے تیار ہے، جو فنڈز کی فعال آمد میں شامل ہے.

دوسرا، اگر موجودہ لین دین کی قیمت آخری لین دین کی قیمت سے زیادہ ہے، تو یہ سمجھا جا سکتا ہے کہ موجودہ لین دین کا حجم فعال طور پر قیمت میں اضافے کو آگے بڑھاتا ہے، جو فنڈز کے فعال بہاؤ میں شامل ہے.

مثال کے طور پر اوپر دوسرا الگورتھم لیں:

ایک خاص مصنوع کی بندش کی قیمت 10:00 بجے 3450 ہے ، اور بندش کی قیمت 11:00 بجے 3455 ہے ، لہذا ہم 10:00 اور 11:00 کے درمیان لین دین کے حجم کو فعال سرمایہ کی آمد کے طور پر شامل کریں گے۔ بصورت دیگر ، اسے فنڈز کے ابتدائی بہاؤ میں شامل کیا جاتا ہے۔ یہ مضمون دوسرے طریقہ پر مبنی ہے ، جس میں قیمت کی اتار چڑھاؤ کا عنصر شامل کیا جاتا ہے۔ k لائن بار بندش کی قیمت سے پہلے اور بعد میں موازنہ کرکے ، بڑھتی ہوئی یا گرتی ہوئی k لائن بار * اتار چڑھاؤ کا حجم ایک ترتیب میں شامل کیا جاتا ہے ، اور پھر ترتیب کے مطابق مزید فنڈز کے فعال بہاؤ تناسب کا حساب لگایا جاتا ہے۔

تجارتی منطق

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

قیمت میں اضافہ اور فی یونٹ وقت فنڈز کی فعال خالص آمد: یہ صورتحال مضبوط ہے، اور مستقبل کی قیمت میں اضافہ جاری رہنے کا امکان زیادہ ہے۔

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

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

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

اہم متغیرات مندرجہ ذیل ہیں:

پچھلا کم (ll) پچھلا اعلی (hh) فعال خریداری (بار ان) فعال فروخت (بار آؤٹ) فنڈز کے فعال بہاؤ اور فنڈز کے فعال بہاؤ کا تناسب (barRatio) افتتاحی پوزیشن کی حد (openValve) موجودہ ہولڈنگ پوزیشن (myAmount) آخری K لائن بند ہونے کی قیمت (بند)

داخلے اور باہر نکلنے کے حالات

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

  • لانگ پوزیشن کھولنا: اگر کوئی موجودہ ہولڈنگ پوزیشن نہیں ہے اور بار ریشو > اوپن والوی، تو لانگ پوزیشن کھولیں۔

  • مختصر پوزیشن کھولنا: اگر کوئی موجودہ ہولڈنگ پوزیشن اور بار ریشو < 1 / اوپن والویو نہیں ہے تو ، مختصر پوزیشن کھولیں۔

  • لانگ پوزیشن بند کرنا: اگر موجودہ لانگ پوزیشن کو برقرار رکھا جائے اور اسے بند کیا جائے، تو لانگ پوزیشن کو بیچیں اور اسے بند کریں۔

  • شارٹ پوزیشن بند کرنا: اگر موجودہ شارٹ پوزیشن کو برقرار رکھا جائے اور اسے بند کیا جائے > hh، شارٹ پوزیشن خریدیں اور اسے بند کریں۔

حکمت عملی کا ماخذ کوڈ لکھنا

اعداد و شمار حاصل کریں اور حساب لگائیں

function data() {
    var self = {};
    var barVol = [];
    var bars = _C(exchange.GetRecords); //Get K line bar data
    if (bars.length < len * 2) { //Control the length of the K line bar data array
        return;
    }
    for (var i = len; i > 0; i--) {
        var barSub_1 = bars[bars.length - (i + 1)].Close - bars[bars.length - (i + 2)].Close; //Calculate the difference between the current closing price and the previous K line bar closing price
        if (barSub_1 > 0) { //If the price rises, add a positive number to the array
            barVol.push(bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        } else if (barSub_1 < 0) { //If the price drops, add a negative number to the array
            barVol.push(-bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        }
    }
    if (barVol.length > len) {
        barVol.shift(); //Free up excess data
    }
    self.barIn = 0;
    self.barOut = 0;
    for (var v = 0; v < barVol.length; v++) {
        if (barVol[v] > 0) {
            self.barIn += barVol[v]; //Consolidate all active inflows funds
        } else {
            self.barOut -= barVol[v]; //Consolidate all active outflow funds
        }
    }
    self.barRatio = self.barIn / Math.abs(self.barOut); //Calculate the ratio of active inflows to active outflows
    bars.pop(); //Delete unfinished K line bar data
    self.close = bars[bars.length - 1].Close; //Get the closing price of the pervious bar
    self.hh = TA.Highest(bars, hgLen, 'High'); //Get the previous high price
    self.ll = TA.Lowest(bars, hgLen, 'Low'); //Get the previous low price
    return self;
}

براہ راست K لائن بار کے اعداد و شمار حاصل کریںGetRecordsFMZ API میں طریقہ کار۔ سب سے زیادہ قیمت ، سب سے کم قیمت ، افتتاحی قیمت ، اختتامی قیمت ، حجم ، اور معیاری ٹائم اسٹیمپ پر مشتمل ہے۔ اگر تازہ ترین ٹرانزیکشن قیمت آخری ٹرانزیکشن قیمت سے زیادہ ہے تو ، پھر تازہ ترین ٹرانزیکشن حجم * (سب سے زیادہ قیمت-سب سے کم قیمت) کو فعال خریداری میں شامل کیا جاتا ہے۔ اگر تازہ ترین ٹرانزیکشن قیمت آخری ٹرانزیکشن قیمت سے کم ہے تو ، پھر تازہ ترین حجم * (سب سے زیادہ قیمت-سب سے کم قیمت) کو فعال فروخت میں شامل کیا جاتا ہے۔

پوزیشن ڈیٹا حاصل کریں

function positions(name) {
    var self = {};
    var mp = _C(exchange.GetPosition); //Get positions
    if (mp.length == 0) {
        self.amount = 0;
    }
    for (var i = 0; i < mp.length; i++) { //Position data processing
        if (mp[i].ContractType == name) {
            if (mp[i].Type == PD_LONG || mp[i].Type == PD_LONG_YD) {
                self.amount = mp[i].Amount;
            } else if (mp[i].Type == PD_SHORT || mp[i].Type == PD_SHORT_YD) {
                self.amount = -mp[i].Amount;
            }
            self.profit = mp[i].Profit;
        } else {
            self.amount = 0;
        }
    }
    return self;
}

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

احکامات کا تعین

function trade() {
    var myData = data(); //Execute data function
    if (!myData) {
        return;
    }
    var mp = positions(contractType); //Get position information
    var myAmount = mp.amount; //Get the number of positions
    var myProfit = mp.profit; //Get floating profit and loss
    if (myAmount > 0 && myData.close < myData.ll) {
        p.Cover(contractType, unit); //close long position
    }
    if (myAmount < 0 && myData.close > myData.hh) {
        p.Cover(contractType, unit); //close short position
    }
    if (myAmount == 0) {
        if (myData.barRatio > openValve) {
            p.OpenLong(contractType, unit); //open long position
        } else if (myData.barRatio < 1 / openValve) {
            p.OpenShort(contractType, unit); //open short position
        }
    }
}

اسٹریٹجک خصوصیات

  • خصوصیات:

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

  • بہتری:

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

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

مکمل حکمت عملی کا ماخذ کوڈ:

/*backtest
start: 2016-01-01 09:00:00
end: 2019-12-31 15:00:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/

var p = $.NewPositionManager(); //Call commodity futures trading library

//Holding Position data processing
function positions(name) {
    var self = {};
    var mp = _C(exchange.GetPosition); //Get positions
    if (mp.length == 0) {
        self.amount = 0;
    }
    for (var i = 0; i < mp.length; i++) { //Holding Position data processing
        if (mp[i].ContractType == name) {
            if (mp[i].Type == PD_LONG || mp[i].Type == PD_LONG_YD) {
                self.amount = mp[i].Amount;
            } else if (mp[i].Type == PD_SHORT || mp[i].Type == PD_SHORT_YD) {
                self.amount = -mp[i].Amount;
            }
            self.profit = mp[i].Profit;
        } else {
            self.amount = 0;
        }
    }
    return self;
}

//Market data processing function
function data() {
    var self = {};
    var barVol = [];
    var bars = _C(exchange.GetRecords); //Get K line bar data
    if (bars.length < len * 2) { //Control the length of the K line bar data array
        return;
    }
    for (var i = len; i > 0; i--) {
        var barSub_1 = bars[bars.length - (i + 1)].Close - bars[bars.length - (i + 2)].Close; //Calculate the difference between the current closing price and the previous K line bar closing price
        if (barSub_1 > 0) { //If the price rises, add a positive number to the array
            barVol.push(bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        } else if (barSub_1 < 0) { //If the price drops, add a negative number to the array
            barVol.push(-bars[bars.length - (i + 1)].Volume * (bars[bars.length - (i + 1)].High - bars[bars.length - (i + 1)].Low));
        }
    }
    if (barVol.length > len) {
        barVol.shift(); //Free up excess data
    }
    self.barIn = 0;
    self.barOut = 0;
    for (var v = 0; v < barVol.length; v++) {
        if (barVol[v] > 0) {
            self.barIn += barVol[v]; //Consolidate all active inflows funds
        } else {
            self.barOut -= barVol[v]; //Consolidate all active outflow funds
        }
    }
    self.barRatio = self.barIn / Math.abs(self.barOut); //Calculate the ratio of active inflows to active outflows
    bars.pop(); //Delete unfinished K line bar data
    self.close = bars[bars.length - 1].Close; //Get the closing price of the last K line bar
    self.hh = TA.Highest(bars, hgLen, 'High'); //Get the previous high price
    self.ll = TA.Lowest(bars, hgLen, 'Low'); //Get the previous low price
    return self;
}

//Trading function
function trade() {
    var myData = data(); //Execute data function
    if (!myData) {
        return;
    }
    var mp = positions(contractType); //Get position information
    var myAmount = mp.amount; //Get the number of positions
    var myProfit = mp.profit; //Get floating profit and loss
    if (myAmount > 0 && myData.close < myData.ll) {
        p.Cover(contractType, unit); //close long position
    }
    if (myAmount < 0 && myData.close > myData.hh) {
        p.Cover(contractType, unit); //close short position
    }
    if (myAmount == 0) {
        if (myData.barRatio > openValve) {
            p.OpenLong(contractType, unit); //open long position
        } else if (myData.barRatio < 1 / openValve) {
            p.OpenShort(contractType, unit); //open short position
        }
    }
}

//The main entrance of the program, start from here
function main() {
    while (true) { //Enter the loop
        if (exchange.IO("status")) { //If it is the market opening time
            _C(exchange.SetContractType, contractType); //Subscription contract
            trade(); //Execute trade function
        }
    }
}

حکمت عملی کا پتہ:https://www.fmz.com/strategy/87698

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

حکمت عملی کی تشکیل:

img

بیک ٹسٹ کارکردگی:

img

خلاصہ

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

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


متعلقہ

مزید