Type/to search
1
Follow
82
Followers
高频策略: 韭菜收割机应用交流
FAQ
Created 2017-02-16 10:12:00  Updated 2017-02-17 02:45:00
 124
 14941

韭菜收割机策略: https://www.fmz.com/strategy/34388
原始代码: https://github.com/richox/okcoin-leeks-reaper

国外有好几个免手续费的交易所,会写API接口的可以去试试。

我在测试过程中遇到些问题,来这里寻求帮助。谢谢!

  1. 原作者的代码中,有出现延时1分钟的代码: sleep 60000, 没看明白这有什么用?
  2. 移植版本中的成交价格代码有误:
    self.prices[i] = trades[trades.length - 1].Price
    这里所有价格都变成最新的价格了
  3. 另外就是觉得默认的参数 BurstThresholdPct 实在太小了
Related Recommendations
Comment
All comments (104)

    这个策略盈利逻辑是什么?主要靠什么赚钱?

    7 years ago

    3.默认的BurstThresholdPct,实在是太小了。稍微波动一下,就相当于启动了。不知道帖主现在在跑的,有没有改小一点?

    7 years ago
    J

    最近Poloniex的 BTC/USDC 交易对免手续费,可以跑高频

    8 years ago

    你好,请问还在跑吗?不知python版可否发我一份学习一下。。实在看不太来Javascript。
    我是币安做市商账户,负手续费。

    q。515051842

    5 years ago

    哈哈,效果如何

    8 years ago
    J

    FCoin 100% 返还手续费,又可以玩了,继续测试韭菜收割机!
    https://www.fmz.com/robot/93218

    8 years ago

    Fcoin手续费是收什么币,返什么币。跟FT价格没关系

    8 years ago

    需要提前垫付一天的手续费,如果第二天Ft跌了怎么处理?

    8 years ago

    今天FT跌了,收益曲线就下降了。这个策略原来跑的是BTC,而且需要卖空持有的BTC,这样才能保证不受价格起伏的影响。
    我还没有找到合适的交易所跑这个策略

    8 years ago

    第二个问题我也没看懂呢 img 开始这里我就很迷糊.trades获取只有一个.trades.length == 0怎么循环呢

    9 years ago

    目的可能是如果trades没获取到,就再获取一次吧。

    8 years ago

    请问这个策略在ok国际上能跑吗

    9 years ago
    J

    这是高频策略,只能在免手续费的交易所跑

    9 years ago

    能留个联系方式吗?

    9 years ago

    QQ:3171061

    9 years ago

    大神对这个策略还有研究吗? 最后有没有赚到钱? 最近刚学习量化,用python重新写了下这个策略。 发现已经没有免费的交易所了,放在botvs实盘模拟上运行看了下,收益基本跟着币价走,平衡策略不盈利, 趋势策略基本没法成交,都被撤了,可能是botvs上成交量太低的原因? 还有必要在实盘上试嘛?

    9 years ago

    有在实盘上跑吗, 有没有盈利?

    9 years ago

    这个策略只能实盘测试,botvs上跑模拟盘没有意义。
    日本的几个大交易所应该都是免费的吧。
    我没有吃透这个策略的模式,对一些参数也不很了解,放弃研究了。

    9 years ago

    之前不是说还可以赢利吗?

    8 years ago

    感觉问题应该是发生在交易所上。zaif在日本论坛上口碑也特别不好。

    8 years ago

    这个策略以吃单为主?

    9 years ago

    基本是挂单

    9 years ago

    ok国际是 taker - maker 模式,挂单不用手续费啊

    9 years ago

    这样啊,那可能没问题,不过如果有些交易吃单算上手续费那也会亏

    9 years ago

    我之前试过跑,不是高频策略吗,不知道为什么跑了两下就不交易,是不是请求速度过快被禁IP了?

    9 years ago

    打印出返回的错误信息看看什么原因吧。你说的跑了两下是已经交易了还是根本就没有交易?如果一次也没交易,那是策略本身没写好了

    9 years ago

    一开始启动是有交易的,能跑十分钟这样吧,后来就不会交易了,返回的日志是这样的 img

    9 years ago

    明明是一直在收益你却说没在跑……

    9 years ago

    持有也会有收益变化的好吧,没在跑的意思的没有发生交易

    9 years ago

    新手,我也想知道这个程序的交易思路,例如:本次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,等等这些是按照什么来确定的?个人经验、喜好或是根据什么策略?

    9 years ago
    J

    我的理解这些参数就是靠经验,根据当前交易所、市场行情等来不断优化的。

    9 years ago

    我用这个策略没有挣到钱阿,有没有挣到钱的?

    9 years ago

    你在哪个平台上跑的这个策略??感觉这个策略半年32倍有点夸张呀!

    9 years ago

    交易一个月,亏损9%,准备放弃了。

    9 years ago

    算上手续费?

    9 years ago

    Zaif,免手续费

    9 years ago

    还用到了黄金分割率0.618,不知道啥意思(^__^)

    9 years ago
    J

    我觉得就是为了得到一个最优化的买卖价格。用0.5也可以,但是用黄金分割率可以在买入和卖出时,对买入、卖出价格的侧重点有所不同。

    9 years ago

    行情延迟对策略有影响吗?

    9 years ago

    延迟的设置对策略影响应该是非常大的,策略依赖的价格和交易量都会依据不同的延迟而变化。

    9 years ago

    我指的的是被动延迟,tick to trade的延迟

    9 years ago

    我说的也是 :-)

    9 years ago

    被动延迟还能设置?

    9 years ago

    那是我误解了。这种高频对时间当然很敏感,如果延迟太大,我觉得只能把第一个参数百分比的阈值调高。
    不过这个策略我运行了半个月,调了很多参数都还不能盈利,目前放弃了。

    9 years ago
    J

    分享自己移植的原代码里对价格的处理

    // 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倍盘口价差
    }

    9 years ago

    我在每个if里加一个判断tradeAmount >= 0.1的判断,可以减少后面计算量。

    9 years ago

    有道理!

    9 years ago

    有一个问题我没搞懂,哪位大牛能帮解释一下。
    策略启动时初始化了两个账户。一个accountExchange,一个 tradeExchange。所有的交易都是tradeExchange所触发的。
    其中仓位平衡的辅助策略中,通过account账户查余额并计算仓位的偏离情况,但却使用 trade账户去交易。就算交易成功了,也应该是增减trade账户的资金情况呀?它跟account账户到底是什么关系呢?

    9 years ago

    一个账号,2个API接口吧,我是这么理解的。

    9 years ago

    // 更新时间价格序列
    // 本次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天前修正了一次,把这个加号改成乘号了。这样的话,说明最初放出的代码是《修饰》过的,很难想像是发生了什么情况会把乘号复制成加号?

    10 years ago
    J

    原代码里很重要的一些策略没有移植过来,建议自己加上。

    // 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

    10 years ago
    J

    1BTC跑这个策略,一天交易量大概50BTC

    10 years ago

    def prices = [trades[-1].price] * 15 原作者也是这么写的,用于初始化的变量

    10 years ago
    J

    明白了,这初始化变量没问题

    10 years ago

    嗯,看代码也发现这几个问题:
    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

    10 years ago

    你的 1. 那一行在循环里面的吧。。。是数组左移

    10 years ago

    是的,在 1. 那里是赋初值,后面通过 shift 和 push 来更新数据

    10 years ago

    0.7 前面还有一个/2 = 0.35

    10 years ago

    sleep 60000是每隔一分钟清理一次没有成交的订单
    BurstThresholdPct 估计是大数据算出来的一个成交量
    国外哪些交易所免手续费?

    10 years ago
    J

    哦,原来那些进程是同步运行的。Javascript 里好像没法这么执行,只能去判断订单的时间了。

    BurstThresholdPct 在策略里用于判断价格是否出现方向上的突破,这么小的比例感觉不合适。也许以前在OK那种交易量下还行?

    免交易费的交易所看这里的统计: https://coinmarketcap.com/exchanges/volume/24-hour/no-fees/

    10 years ago

    源码上是3个线程,主线程做的趋势交易,一个线程做平衡策略,一个线程做清理。

    10 years ago

    原来是3个线程啊,我说我一直奇怪呢。我重写成了python代码,回头试试

    10 years ago

    昨天运行了一天,发现这平衡策略基本是不赚钱的,现在要看趋势交易能否赚钱了。

    10 years ago

    没有看懂他这个趋势策略,经常是趋势部分刚买完,平衡策略就开始卖。是不是自己量太小了导致的?

    10 years ago

    策略的理念之一就是50%持仓,所以在买卖后就不断用 0.01 的订单来回归50%的仓位。
    当然如果价格继续上升或者下降,还会通过趋势买入卖出。
    这个策略有1BTC应该就能运行了,再少的话很难看到效果了。

    9 years ago

    我大概也是1BTC跑的,死磕了下日志,总结出的核心思想和你上面说的一样。But,跑的两天不赚呀,苦笑ing... 怀疑是自己移植的有问题,你跑的这两天效果怎么样?

    9 years ago

    不赚

    9 years ago

    你在哪个平台测试的?市场深度够吗

    10 years ago

    quoine.com, 深度不怎么好

    10 years ago

    quoine 可以融资融币?! 我在zaif跑,很奇葩的市场,下单5日元一个单位...

    9 years ago

    我也转战Zaif了,效果比Quoine好。交易量不少,不到2天交易量就进入排名第二页了,但是也不赚钱。比比咋们谁的机器人割韭菜更快 :-)

    9 years ago

    Zaif 每次登录的时候,总是提示 "reCAPTCHAを確認してください.", 但是界面上根本没有验证码输入的地方呀?
    你是怎么登录的呢?

    9 years ago

    Google 的验证码,也许被墙了?
    img

    9 years ago

    我还打算去quoine呢,结果认证始终过不了....人生难道就是折腾么。。。
    我也赚不到钱,感觉就是刷交易量,貌似Zaif有交易返点,但是没日本的电话认证过不了。
    交易量排名到哪里看?

    9 years ago

    Quoine 深度不行,还是别去了。
    Zaif 的交易量排行在 https://zaif.jp/public_trade_user/btc_jpy/1 。公开自己的交易量,需要在 Social Settings 页面最下面打开。

    9 years ago

    bitmex 如何?为什么不用这个呢,是不是有坑?

    9 years ago

    手动买卖了几次,有点没折腾明白,就放弃了。

    9 years ago

    今天这么大的波动,结果还是不赚钱。我可能用的是假代码。

    9 years ago

    继续努力,我的开始赚钱了
    img

    9 years ago

    有做什么优化吗,前面没赚钱,后面赚的越来越多

    8 years ago

    老哥,我1w进去,量刷上去了,可还是没赚,今天早上看净值换成RMB还是1w,哭晕了。。。。你怎么样呢?

    9 years ago

    这几天一共交易了2000BTC也还是没赚

    9 years ago

    这个策略,估计是阉割过的。没有有效的止损。

    9 years ago

    问下这个是在 zaif 跑的? BotVS 好像没 zaif 接口,怎么解决的?

    9 years ago

    自己写的接口

    9 years ago

    把移植策略的交易函数替换成httpquery()可以吗?

    9 years ago

    当然没这么简单。还是请Zero赶快把这些免费的交易所加到Botvs上。

    9 years ago

    请问怎么写API接口啊,谢谢老哥

    9 years ago

    我也跑了一个,暂时没啥效果,看了你的,我也有信心了

    9 years ago

    看到你这个我就有信心了

    9 years ago

    你昨天的交易量增加蛮多的

    9 years ago

    跑了一天,貌似量刷上来了,但是没盈利。纠结。。。

    9 years ago

    想办法认证账号, 刷量的交易费每天也能赚个1%

    9 years ago

    他对刷量的交易貌似要求也比较多,其中有一条差价太小的不算。

    9 years ago

    改了下参数,但是效果不好,还改出BUG了。

    9 years ago

    秘密結社ふがふが 这哥们的交易记录简直完美。。

    9 years ago

    他一个人每天就近1000BTC的交易量,韭菜都被他割走了

    9 years ago

    Quoine 我也没融币,但是收益是按照融币来计算的,跑了2天没有赚头

    9 years ago

    botvs不支持quoine啊,怎么办

    9 years ago

    恩恩,我觉得这个策略只能做taker。没深度的话,效果应该不太好的

    10 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)