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