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

صرف یہ چند پیرامیٹرز ہیں۔
صرف بیک ٹیسٹ ٹائم رینج سیٹ کریں:

بیک ٹیسٹ رن:


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