Type/to search

冰山委托(买入)-Jason

Python
0
Follow
1
Followers

1. 前提:
初次学习写策略--冰山委托:
本文主要参考了大佬的策略:https://www.fmz.com/strategy/188435
大致上跟大佬的策略没什么两样,写法还粗糙一些。主要用于学习入门。多多指教

2.前因
在进行大额买卖数字货币时,可能会因为交易金额较大而影响到自己想要买/卖币种的市场价格,对于流动性比较差的数字货币更甚,一个大额买单就可以拉盘,大额卖单就可以砸盘
①拉盘:拉高了价格,将币价抬高
②砸盘:不顾价格,直接将币卖掉,使得币价下跌
③交易货币Stocks:用于交易的币种,以BTC/USDT交易对为例,BTC是交易货币
④计价货币Balance:用户计价的货币,以BTC/USDT交易对为例,USDT是计价货币

冰山委托:
操作:是指将大单委托自动拆分为多笔委托,根据当前的最新买一/卖一价格和客户设定的价格策略自动进行小单委托,在上一笔委托被全部交易或最新价格明显偏离当前委托时,自动重新进行委托
效果:减少大额买单/卖单对市场价格的影响,进行大额买入时,可以防止因大额买单造成价格提升而增加自己的买入成本;在大额卖出时,可以防止因大额卖单造成拉低价格减少自己的卖出利润

数据参数对照:

  1. 委托价格=最新买1价X(1-委托深度)
  2. 实际市场委托深度= (最后成交价格 - 上次委托价格)/ 上次委托价格
  3. 随机单次购买数量=单次购买数量均值 X(100-单次均值浮点数)% + (单次均值浮动点数X2)%X单次购买数量均值X随机数0~1
  4. 可用金额= 取账户计价货币,随机单次购买数量,购买剩余总金额数最小值
  5. 购买数量=可用金额/委托价格
  6. 购买剩余总金额= 购买总金额-(初始账户计价货币-账户计价货币)

规则:

  1. 在最新成交价格距离该笔委托超过委托深度X2时自动撤单(说明偏离太大)
  2. 当策略总成交量等于总委托数量时停止委托
  3. 最新成交价格高于最高限制买入价格停止委托
  4. 在最新成交价格低于最高限制买入价格恢复委托

主要参数:

  1. 买入金额
  2. 单笔购买数量
  3. 委托深度
  4. 最高价格
  5. 价格轮询间隔
  6. 单次购买数量均值浮点数
  7. 最小交易量

思路:

  1. 获取所有未成交的订单,取消订单
  2. 获取初始化账户余额,判断是否大于购买总金额
  3. 计算委托价格
  4. 计算单次购买数量
  5. 计算可用金额
  6. 计算购买数量
  7. 执行买入
  8. 休息指定时间
  9. 判断上次订单是否购买成功
  10. 成功输出日志
  11. 失败判断偏差是否太大,太大则需要撤销

建议

  1. 建议使用ETH_USDT回测

策略不完善,希望路过的大佬们指点一二

Source
Python
import random


def main():
    # 获取账户所有未成交订单
    Log("取消所有未成交订单")
    orders = _C(exchange.GetOrders)
    if len(orders) > 0:
        for i in range(len(orders)):
            exchange.CancelOrder(orders[i]["Id"])
            Sleep(priceInterval*1000)
Strategy parameters
Strategy parameters
买入金额
单笔购买数量均值
委托深度
最高价格
询问价格间隔
最小交易量
单次购买数量均值浮点数
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)