کھیتی کی کٹائی کرنے والی مشین کی حکمت عملی: https://www.fmz.com/strategy/34388
اصل کوڈ: https://github.com/richox/okcoin-leeks-reaper
اس کے علاوہ ، آپ کو یہ بھی معلوم ہونا چاہئے کہ اگر آپ کسی دوسرے ملک میں ہیں تو ، آپ کو ان لوگوں کے ساتھ بات چیت کرنے کی ضرورت نہیں ہے جو آپ کے ساتھ بات چیت کرتے ہیں اور آپ کو ان کے ساتھ بات چیت کرنے کی ضرورت ہے۔
مجھے ٹیسٹنگ کے دوران کچھ پریشانیوں کا سامنا کرنا پڑا ہے اور میں مدد کے لئے یہاں آیا ہوں۔ شکریہ!
- اس کوڈ میں ایک منٹ کی تاخیر کی گئی ہے: sleep 60000، میں نے نہیں دیکھا کہ اس کا کیا فائدہ ہے؟
- ٹرانسپورٹ کی قیمتوں کا کوڈ غلط ہے:
self.prices[i] = trades[trades.length - 1].Price
یہاں تمام قیمتوں کو تازہ ترین قیمتوں میں تبدیل کر دیا گیا ہے. - اور یہ کہ ڈیفالٹ پیرامیٹرز BurstThresholdPct بہت چھوٹا ہے.
你好,请问还在跑吗?不知python版可否发我一份学习一下。。实在看不太来Javascript。
我是币安做市商账户,负手续费。
q。515051842
新手,我也想知道这个程序的交易思路,例如:本次tick交易量 = 上次tick交易量0.7 + 本次tick期间实际发生的交易量0.3,用于平滑和减少噪音;本次tick价格 = (买1+卖1)*0.35 + (买2+卖2) * 0.10 + (买3+卖3)*0.05;bidPrice = orderBook.bids[0].limitPrice * 0.618 + orderBook.asks[0].limitPrice * 0.382 + 0.01,等等这些是按照什么来确定的?个人经验、喜好或是根据什么策略?
那是我误解了。这种高频对时间当然很敏感,如果延迟太大,我觉得只能把第一个参数百分比的阈值调高。
不过这个策略我运行了半个月,调了很多参数都还不能盈利,目前放弃了。
分享自己移植的原代码里对价格的处理
// 2A. 价格未突破,减小力度
if (bull && (self.prices[self.prices.length-1] < _.max(self.prices.slice(0, -1)))) {
tradeAmount *= 0.90 // 价格未创新高
}
if (bear && (self.prices[self.prices.length-1] > _.min(self.prices.slice(0, -1)))) {
tradeAmount *= 0.90 // 价格未创新低
}
// 3. 短时价格波动过大,减小力度
if (Math.abs(self.prices[self.prices.length-1] - self.prices[self.prices.length-2]) > burstPrice * 2) {
tradeAmount *= 0.90 // 2倍价格波动
}
if (Math.abs(self.prices[self.prices.length-1] - self.prices[self.prices.length-2]) > burstPrice * 3) {
tradeAmount *= 0.90 // 3倍价格波动
}
if (Math.abs(self.prices[self.prices.length-1] - self.prices[self.prices.length-2]) > burstPrice * 4) {
tradeAmount *= 0.90 // 4倍价格波动
}
// 4. 盘口价差过大,减少力度
if (self.orderBook.Asks[0][0] - self.orderBook.Bids[0][0] > burstPrice * 2) {
tradeAmount *= 0.90 // 2倍盘口价差
}
if (self.orderBook.Asks[0][0] - self.orderBook.Bids[0][0] > burstPrice * 3) {
tradeAmount *= 0.90 // 3倍盘口价差
}
if (self.orderBook.Asks[0][0] - self.orderBook.Bids[0][0] > burstPrice * 4) {
tradeAmount *= 0.90 // 4倍盘口价差
}
// 更新时间价格序列
// 本次tick价格 = (买1+卖1)*0.35 + (买2+卖2) * 0.10 + (买3+卖3)*0.05
prices = prices[1 .. -1] + [(
(orderBook.bids[0].limitPrice + orderBook.asks[0].limitPrice) / 2 + 0.7 +
(orderBook.bids[1].limitPrice + orderBook.asks[1].limitPrice) / 2 + 0.2 +
(orderBook.bids[2].limitPrice + orderBook.asks[2].limitPrice) / 2 + 0.1)]
//=======================================
这里原作者的注释里写的思路很明白(权重之和==1.0), 而实际代码里却看不明白是什么思路(难道原作者自己代码写错了?把乘号错写成了+号。。。或者是故意的?)
//=================后记==================
好吧,去github看了一下,果然原作者10天前修正了一次,把这个加号改成乘号了。这样的话,说明最初放出的代码是《修饰》过的,很难想像是发生了什么情况会把乘号复制成加号?
原代码里很重要的一些策略没有移植过来,建议自己加上。
// 2A. 价格未实现突破,减小力度
if (bull && prices[-1] < prices[0 .. -1].max()) tradeAmount *= 0.90
if (bear && prices[-1] > prices[0 .. -1].min()) tradeAmount *= 0.90
// 3. 短时价格波动过大,减小力度
if (Math.abs(prices[-1] - prices[-2]) > burstPrice * 2) tradeAmount *= 0.90
if (Math.abs(prices[-1] - prices[-2]) > burstPrice * 3) tradeAmount *= 0.90
if (Math.abs(prices[-1] - prices[-2]) > burstPrice * 4) tradeAmount *= 0.90
// 4. 盘口价差过大,减少力度
if (orderBook.asks[0].limitPrice - orderBook.bids[0].limitPrice > burstPrice * 2) tradeAmount *= 0.90
if (orderBook.asks[0].limitPrice - orderBook.bids[0].limitPrice > burstPrice * 3) tradeAmount *= 0.90
if (orderBook.asks[0].limitPrice - orderBook.bids[0].limitPrice > burstPrice * 4) tradeAmount *= 0.90
嗯,看代码也发现这几个问题:
1、self.prices[i] = trades[trades.length - 1].Price 数组里的值都更新为最新价了?
2、self.prices.push(_N((orderBook.Bids[0].Price + orderBook.Asks[0].Price) * 0.35 这里的0.35+0.1+0.05合计为0.5,而原作者代码是0.7+0.2+0.1
哦,原来那些进程是同步运行的。Javascript 里好像没法这么执行,只能去判断订单的时间了。
BurstThresholdPct 在策略里用于判断价格是否出现方向上的突破,这么小的比例感觉不合适。也许以前在OK那种交易量下还行?
免交易费的交易所看这里的统计: https://coinmarketcap.com/exchanges/volume/24-hour/no-fees/
Quoine 深度不行,还是别去了。
Zaif 的交易量排行在 https://zaif.jp/public_trade_user/btc_jpy/1 。公开自己的交易量,需要在 Social Settings 页面最下面打开。
- 1








