بہت سے صارفین کی ضروریات کے مطابق ، حال ہی میں ایف ایم زیڈ پلیٹ فارم نے ڈی وائی ڈی ایکس نامی ایک غیر مرکزی تبادلہ کی حمایت کی ہے۔ حکمت عملی رکھنے والے چھوٹے شراکت داروں کو ڈی وائی ڈی ایکس کی کان کنی کا لطف اٹھانا ہے۔ بہت عرصہ پہلے ہی ہم نے ایک بے ترتیب تجارتی حکمت عملی لکھنے کا ارادہ کیا تھا ، پیسہ کمانے اور پیسہ کمانے کا کوئی خاص مقصد نہیں تھا۔ لہذا اگلا ، ہم ایک ساتھ مل کر ایک بے ترتیب تبادلہ حکمت عملی تیار کریں گے ، حکمت عملی کی کارکردگی چاہے یا نہ ہو ، ہمیں حکمت عملی ڈیزائن سیکھنے کا حق بھی ہے۔
اس مضمون میں حکمت عملی کی کھدائی کا اسکرین شاٹ۔
اگر آپ کے پاس کان کنی کے بارے میں کوئی اچھا خیال ہے تو ، آپ کو تبصرہ کرنے کا خیرمقدم ہے!
آئیے ہوش میں آکر سوچنے کی کوشش کریں! ایک ایسی حکمت عملی تیار کرنے کا منصوبہ بنائیں جس میں نہ تو اشارے دیکھیں ، نہ ہی قیمتوں کو دیکھیں۔ صرف اور صرف زیادہ کام کریں ، خالی جگہیں بنائیں ، اور جو کچھ بھی بند ہے وہ امکانات ہیں۔ پھر ہم 1 سے 100 تک کی بے ترتیب تعداد کا استعمال کرتے ہوئے کتنے خالی ہیں اس کا تعین کرتے ہیں۔
متعدد شرائط: 1 سے 50 تک کی بے ترتیب تعداد۔ خالی شرائط: 51 سے 100 تک کی بے ترتیب تعداد۔
زیادہ خالی جگہیں 50 نمبر ہوتی ہیں۔ اگلا ہم سوچتے ہیں کہ کس طرح بریک لگانا ہے ، چونکہ یہ ایک جیت ہے ، لہذا اس میں جیتنے کا معیار ہونا ضروری ہے۔ تو پھر تجارت میں ہم فکسڈ اسٹاپ ہولڈ ، اسٹاپ نقصان کو جیتنے کے معیار کے طور پر قائم کرتے ہیں۔ اسٹاپ ہولڈ جیت ہے ، اسٹاپ نقصان ہار ہے۔ اور اس اسٹاپ ہولڈ نقصان کا کتنا مناسب ہے ، یہ اصل میں منافع اور نقصان کی شرح پر اثر انداز ہوتا ہے ، ٹھیک ہے!
یہ کوئی لاگت نہیں ہے، اس کے پاس سلائڈ پوائنٹس، رسپانس فیس اور دیگر عوامل ہیں جو ہماری بے ترتیب تجارت کی جیت کی شرح کو 50 فیصد سے بھی کم کی طرف لے جاتے ہیں۔ یہاں ڈیزائن کرنے کے بارے میں کیا خیال ہے؟ اس کے بجائے ایک ضارب کو ڈیزائن کریں، کیونکہ یہ جعلی ہے، لہذا یہ بہت زیادہ امکان نہیں ہونا چاہئے کہ آپ 10 مسلسل 8 بے ترتیب تجارتوں کو کھو دیں گے۔ لہذا میں نے پہلی تجارت پر ایک چھوٹی سی رقم ڈیزائن کرنا چاہا، جو بھی چھوٹا ہو سکتا ہے۔ پھر اگر آپ کھو جاتے ہیں تو، اگلے رقم میں اضافہ کریں اور بے ترتیب ترتیب جاری رکھیں.
ٹھیک ہے، حکمت عملی ڈیزائن کرنے کے لئے اتنا آسان ہے.
ڈیزائن کا ماخذ:
var openPrice = 0
var ratio = 1
var totalEq = null
var nowEq = null
function cancelAll() {
while (1) {
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(500)
}
Sleep(500)
}
}
function main() {
if (isReset) {
_G(null)
LogReset(1)
LogProfitReset()
LogVacuum()
Log("重置所有数据", "#FF0000")
}
exchange.SetContractType(ct)
var initPos = _C(exchange.GetPosition)
if (initPos.length != 0) {
throw "策略启动时有持仓!"
}
exchange.SetPrecision(pricePrecision, amountPrecision)
Log("设置精度", pricePrecision, amountPrecision)
if (!IsVirtual()) {
var recoverTotalEq = _G("totalEq")
if (!recoverTotalEq) {
var currTotalEq = _C(exchange.GetAccount).Balance // equity
if (currTotalEq) {
totalEq = currTotalEq
_G("totalEq", currTotalEq)
} else {
throw "获取初始权益失败"
}
} else {
totalEq = recoverTotalEq
}
} else {
totalEq = _C(exchange.GetAccount).Balance
}
while (1) {
if (openPrice == 0) {
// 更新账户信息,计算收益
var nowAcc = _C(exchange.GetAccount)
nowEq = IsVirtual() ? nowAcc.Balance : nowAcc.Balance // equity
LogProfit(nowEq - totalEq, nowAcc)
var direction = Math.floor((Math.random()*100)+1) // 1~50 , 51~100
var depth = _C(exchange.GetDepth)
if (depth.Asks.length <= 2 || depth.Bids.length <= 2) {
Sleep(1000)
continue
}
if (direction > 50) {
// long
openPrice = depth.Bids[1].Price
exchange.SetDirection("buy")
exchange.Buy(Math.abs(openPrice) + slidePrice, amount * ratio)
} else {
// short
openPrice = -depth.Asks[1].Price
exchange.SetDirection("sell")
exchange.Sell(Math.abs(openPrice) - slidePrice, amount * ratio)
}
Log("下", direction > 50 ? "买单" : "卖单", ",价格:", Math.abs(openPrice))
continue
}
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
var pos = _C(exchange.GetPosition)
if (pos.length == 0) {
openPrice = 0
continue
}
// 平仓检测
while (1) {
var depth = _C(exchange.GetDepth)
if (depth.Asks.length <= 2 || depth.Bids.length <= 2) {
Sleep(1000)
continue
}
var stopLossPrice = openPrice > 0 ? Math.abs(openPrice) - stopLoss : Math.abs(openPrice) + stopLoss
var stopProfitPrice = openPrice > 0 ? Math.abs(openPrice) + stopProfit : Math.abs(openPrice) - stopProfit
var winOrLoss = 0 // 1 win , -1 loss
// 画线
$.PlotLine("bid", depth.Bids[0].Price)
$.PlotLine("ask", depth.Asks[0].Price)
// 止损
if (openPrice > 0 && depth.Bids[0].Price < stopLossPrice) {
exchange.SetDirection("closebuy")
exchange.Sell(depth.Bids[0].Price - slidePrice, pos[0].Amount)
winOrLoss = -1
} else if (openPrice < 0 && depth.Asks[0].Price > stopLossPrice) {
exchange.SetDirection("closesell")
exchange.Buy(depth.Asks[0].Price + slidePrice, pos[0].Amount)
winOrLoss = -1
}
// 止盈
if (openPrice > 0 && depth.Bids[0].Price > stopProfitPrice) {
exchange.SetDirection("closebuy")
exchange.Sell(depth.Bids[0].Price - slidePrice, pos[0].Amount)
winOrLoss = 1
} else if (openPrice < 0 && depth.Asks[0].Price < stopProfitPrice) {
exchange.SetDirection("closesell")
exchange.Buy(depth.Asks[0].Price + slidePrice, pos[0].Amount)
winOrLoss = 1
}
// 检测挂单
Sleep(2000)
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
pos = _C(exchange.GetPosition)
if (pos.length == 0) {
if (winOrLoss == -1) {
ratio++
} else if (winOrLoss == 1) {
ratio = 1
}
break
}
} else {
// 撤销挂单
cancelAll()
Sleep(2000)
pos = _C(exchange.GetPosition)
// 撤销后更新持仓,需要再次检查
if (pos.length == 0) {
if (winOrLoss == -1) {
ratio++
} else if (winOrLoss == 1) {
ratio = 1
}
break
}
}
var tbl = {
"type" : "table",
"title" : "info",
"cols" : ["totalEq", "nowEq", "openPrice", "bid1Price", "ask1Price", "ratio", "pos.length"],
"rows" : [],
}
tbl.rows.push([totalEq, nowEq, Math.abs(openPrice), depth.Bids[0].Price, depth.Asks[0].Price, ratio, pos.length])
tbl.rows.push(["pos", "type", "amount", "price", "--", "--", "--"])
for (var j = 0 ; j < pos.length ; j++) {
tbl.rows.push([j, pos[j].Type, pos[j].Amount, pos[j].Price, "--", "--", "--"])
}
LogStatus(_D(), "\n", "`" + JSON.stringify(tbl) + "`")
}
} else {
// 撤销挂单
// 重置openPrice
cancelAll()
openPrice = 0
}
Sleep(1000)
}
}
حکمت عملی کے پیرامیٹرز:
ہاں! اس حکمت عملی کو ایک نام کی ضرورت ہے ، اسے اندازہ لگائیں (ڈی وائی ڈی ایکس ورژن)
یہ صرف حوالہ کے لئے ہے، >_
ریٹیسٹ مکمل، کوئی BUG نہیں ہے۔ لیکن مجھے لگتا ہے کہ میں ریٹیسٹ سسٹم کے لئے موزوں ہوں یا نہیں... T_T، اصل ڈسک چل رہا ہے اور کھیل رہا ہے۔
یہ حکمت عملی صرف تعلیمی اور حوالہ جات کے لیے ہے۔لاکھوں~لاکھوںاس کا استعمال نہ کریں!
شیونگ لونگ ہوئسوال یہ ہے کہ کیا ڈی ڈی ایکس ڈی سی ایکسچینج اب فوری طور پر تجارت کی حمایت کرتا ہے؟ یا صرف مستقل معاہدوں کی حمایت کرتا ہے؟ کبھی بھی ڈی سی ایکسچینج کا استعمال نہیں کیا گیا ہے ، اگر ڈی ڈی ایکس فوری طور پر تجارت کی حمایت کرتا ہے تو ، آپ کو فوری طور پر گرڈ ٹریڈنگ کی حکمت عملی پر غور کرنا چاہئے۔ یا پھر ڈی سی ایکسچینج ، جس میں خرید و فروخت کی کامیابی کی تصدیق کرنے کے لئے انتظار کرنے کا وقت بھی درکار ہوتا ہے ، بجلی کی طرح تیزی سے نہیں ، طویل مدتی تصدیق کی ضرورت ہوتی ہے۔ اگر رفتار ان پر قابو پاتی ہے ، اور گرڈ مساوات کی مقدار کو لکھنے کی حکمت عملی کی حمایت کرتی ہے تو ، یہ بہت اچھا ہے۔
hyc1743ایک چھوٹا سا سفید، براہ مہربانی پوچھیں کہ آپ کیوں نہیں دوڑ سکتے ہیں
ایجاد کاروں کی مقدار - خوابڈی وائی ڈی ایکس میں نے ایک حقیقی اور مستقل معاہدہ کیا ہے۔
ایجاد کاروں کی مقدار - خوابحکمت عملی کا منبع کوڈ صرف حکمت عملی کا کوڈ ہے ، اور اس پر پیرامیٹرز کی تشکیل کی جاتی ہے۔ پیرامیٹرز کے بارے میں مضمون میں اسکرین شاٹ موجود ہے۔