Type/to search
8
Follow
1364
Followers
ایک آئیڈیا کو نافذ کرنے کے لیے کوڈ کی 60 لائنیں - کنٹریکٹ نیچے سے چننے کی حکمت عملی
Original
Created 2022-03-19 14:37:08  Updated 2024-12-02 21:32:02
 14
 3758

img

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

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

FMZ.COM پر مبنی فوری ترقی

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

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

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

javascript
function cancelAll() { while (true) { var orders = _C(exchange.GetOrders) if (orders.length == 0) { break } for (var i = 0 ; i < orders.length ; i++) { exchange.CancelOrder(orders[i].Id, orders[i]) Sleep(interval) } } } function getLong(arr, kind) { var ret = null for (var i = 0 ; i < arr.length ; i++) { if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) { ret = arr[i] } } return ret } function pendingBidOrders(firstPrice) { var index = 0 var amount = baseAmount while (true) { var pos = _C(exchange.GetPosition) var price = firstPrice - index * baseSpacing amount *= ratio index++ exchange.SetDirection("buy") exchange.Buy(price, amount) if (pos.length != 0) { var longPos = getLong(pos, "pos") if (longPos) { exchange.SetDirection("closebuy") exchange.Sell(longPos.Price + profitTarget, longPos.Amount) } } while (true) { Sleep(interval) if (!getLong(_C(exchange.GetOrders), "orders")) { cancelAll() break } if (!getLong(_C(exchange.GetPosition), "pos")) { cancelAll() return } } } } function main() { exchange.SetContractType(symbol) while (true) { pendingBidOrders(_C(exchange.GetTicker).Last) } }

پیرامیٹر ڈیزائن بھی بہت آسان ہے:

img

صرف یہ چند پیرامیٹرز ہیں۔

کوڈ کی ان درجنوں لائنوں کے پس پردہ اثر کو دیکھیں

صرف بیک ٹیسٹ ٹائم رینج سیٹ کریں:

img

بیک ٹیسٹ رن:

img

img

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

حکمت عملی کوڈ صرف سیکھنے اور تحقیق کے مقاصد کے لیے ہے۔

Related Recommendations
Comment
All comments (14)

    img
    运行之后会报错然后一直在挂单,撤单无限循环,要如何解决

    4 years ago

    您好,这个是个教学策略,主要是讲解思路,可以在币安永续合约跑,跑OK需要对策略修改一下。上面问题的原因是下单量为小数了,OKX是要求下单量为合约整张数的。币安期货USDT本位永续合约可以是小数

    4 years ago

    好的谢谢我知道了

    4 years ago

    不客气,刚写支持FMZ量化。

    4 years ago

    这个策略只能在币安上跑吗?

    4 years ago

    都可以跑,就是参数调整下就行。

    4 years ago

    仓位增长系数是什么意思?

    4 years ago

    设置2就是2倍加仓。

    4 years ago

    怎么没有策略地址啊?复制策略源码不能用

    4 years ago

    这个策略只是一个教学策略,切勿实盘,回测研究学习可以。复制策略源码,还要加上策略参数,参数如文章上的截图。

    4 years ago

    img
    现在币安不能支持麦语言策略使用么,会提示用web什么的方式进行实时更新避免api封禁

    4 years ago

    您好,这个和策略无关的,您可以设置一下麦语言模版参数上的轮询间隔,设置大一些。如果您一个服务器上跑多个实盘,都访问一个交易所的接口,那么频率是会翻倍的,很容易就超频超限了。

    4 years ago

    img
    按道理我这个参数两个轮训一分钟最多120次,并没有超过币安限制每分钟1200次访问呀,有点不理解

    4 years ago

    是不是运行了多个实盘,如果一个服务器上运行2个实盘,频率就翻倍,以此类推的。

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)