技术图文:如何通过挂单刷 BigOne 的贡献值?
背景
这段时间 BigOne 开启了「挂单捡钱七天乐」活动,凡在活动期间进行有效挂单的用户均可获得「贡献值」奖励。
详细情况如下:
1. 参与交易对
BTC/USDT, EOS/USDT, ETH/USDT, ONE/USDT, EOS/BTC, ETH/BTC, EOS/ETH,共 7 个交易对。
2. 奖励额度
每个交易对每天的奖励额度为 10,000 「贡献值」,7 天共 490,000 「贡献值」。
3. 奖励获取方式
计算每个用户在各交易对的当日挂单得分,根据用户在某交易对的当日挂单得分占比瓜分相应的「贡献值」奖励。
4. 挂单得分计算方式
每分钟对每个交易对的挂单进行一次随机快照,并分别计算用户买单和卖单的挂单得分。
单次快照的买(卖)挂单得分 = 该用户在该交易对本次快照的有效挂单范围内的买(卖)挂单量 * 买(卖)挂单权重
选取用户单次快照期间,买单得分和卖单得分中较小的得分,作为用户该次快照的挂单得分。如果某位用户只挂买单或只挂卖单,最终的挂单得分将为 0。
用户当日在某交易对所有快照的挂单得分相加即为该用户当日在该交易对的最终挂单得分。
5. 「贡献值」使用说明
用户可以在每期「贡献值」开启兑换后,在 https://b1.run/one 可以用 1 「贡献值」+ 1 ONE 兑换 0.14 USDT 等值的 BTC 或 ONE。
6. 参考公告
- 第一期「挂单捡钱七天乐」参见网址:
https://bigone.zendesk.com/hc/zh-cn/articles/360033862274-BigONE-%E5%B0%86%E5%BC%80%E5%90%AF-%E6%8C%82%E5%8D%95%E6%8D%A1%E9%92%B1%E4%B8%83%E5%A4%A9%E4%B9%90-%E6%B4%BB%E5%8A%A8
- 第二期「挂单捡钱七天乐」参见网址:
https://bigone.zendesk.com/hc/zh-cn/articles/360034159754-%E7%AC%AC%E4%BA%8C%E6%9C%9F-%E6%8C%82%E5%8D%95%E6%8D%A1%E9%92%B1%E4%B8%83%E5%A4%A9%E4%B9%90-%E5%BC%80%E5%90%AF-%E7%8B%82%E9%80%81%E4%BB%B7%E5%80%BC%E7%BA%A6-38-%E4%B8%87-CNY-%E8%B4%A1%E7%8C%AE%E5%80%BC-
- BigOne贡献值 参见网址:
https://bigone.zendesk.com/hc/zh-cn/articles/360024599514–%E7%99%BE%E5%80%8D%E5%AE%9A%E5%90%91%E5%9B%9E%E8%B4%AD-ONE-%E6%88%98%E7%95%A5%E5%8D%87%E7%BA%A7-%E8%AE%A9%E8%B4%A1%E7%8C%AE%E8%80%85%E4%B9%9F%E6%88%90%E4%B8%BA%E8%8E%B7%E7%9B%8A%E8%80%85
技术分析
开始没有关注这个活动,但在群里看到秒哥发了以下的消息:
哇,这比跑量化来钱快多了。我居然一天拿了3万贡献值。
大家快来挂单捡钱呀!
3万贡献值,哪怕花一年才能兑完。也是实实在在的3万人民币了。兑付时间久一点没关系,反正能兑出来的。
受到秒哥的刺激,我开始研究 BigOne 活动规则。
只要在 BigOne 快照时,挂单价格距离最新成交价上下 5% 以内就可以记分。想赚这个贡献值可以在 1分钟内 距离中线价格,上下 4% 循环挂单即可。
想明白之后,就开始写这块的代码。估计很多人看到这个捡钱的机会,加入了进来。从第二天开始获得的贡献值就很少了。跟秒哥交流也证明了这一点,不管怎样蚊子腿也是肉啊。
代码实现
1. 计算挂单价格
参考图文:
- 如何进行代码的重构?以封装 BigOne API 为例
public class AskBidInfor
{//挂单百分比public double Rate = 0.04;public string MarketId { get; set; }public double Bid1Price { get; set; }public double Bid1Amount { get; set; }public double Ask1Price { get; set; }public double Ask1Amount { get; set; }// 挂买单的价格public double BidPrice{get{double avg = (Bid1Price + Ask1Price)/2.0;return avg*(1 - Rate);}}// 挂卖单的价格public double AskPrice{get{double avg = (Bid1Price + Ask1Price) / 2.0;return avg*(1 + Rate);}}
}// 获取挂单价格的方法
public AskBidInfor GetAskBidInfor(string marketId, out bool isTrue)
{AskBidInfor result = new AskBidInfor();try{List<PriceLevel> ask;List<PriceLevel> bid;BigOneUtility.GetOrderBook(marketId, out ask, out bid);result.MarketId = marketId;result.Ask1Price = double.Parse(ask[0].price);result.Bid1Price = double.Parse(bid[0].price);isTrue = true;}catch{isTrue = false;}return result;
}
2. 刷单的代码
参考图文:
- 如何利用BigOne的API制作自动化交易系统 – 订单系统
private static readonly BigOneUtility BigOneUtility = new BigOneUtility();
private static readonly List<JsonCreateOrder.Data> LstBtcusdt = new List<JsonCreateOrder.Data>();//BTC/USDT
private static readonly List<JsonCreateOrder.Data> LstEosusdt = new List<JsonCreateOrder.Data>();//EOS/USDT
private static readonly List<JsonCreateOrder.Data> LstEthusdt = new List<JsonCreateOrder.Data>();//ETH/USDT
private static readonly List<JsonCreateOrder.Data> LstOneusdt = new List<JsonCreateOrder.Data>();//ONE/USDT
private static readonly List<JsonCreateOrder.Data> LstEosbtc = new List<JsonCreateOrder.Data>();//EOS/BTC
private static readonly List<JsonCreateOrder.Data> LstEoseth = new List<JsonCreateOrder.Data>();//EOS/ETH
private static readonly List<JsonCreateOrder.Data> LstEthbtc = new List<JsonCreateOrder.Data>();//ETH/BTCstatic void Brush(string marketId,double amount)
{bool isTrue;// 获取挂单价格AskBidInfor askBidInfor = GetAskBidInfor(marketId, out isTrue);while (isTrue == false){askBidInfor = GetAskBidInfor(marketId, out isTrue);}// 撤销已挂订单CancelAllOrder(marketId);// 挂入买单 JsonCreateOrder.Data bidOrder = BigOneUtility.CreateBidOrder(marketId, askBidInfor.BidPrice, amount);// 挂入卖单JsonCreateOrder.Data askOrder = BigOneUtility.CreateAskOrder(marketId, askBidInfor.AskPrice, amount);switch (marketId){case "BTC-USDT":LstBtcusdt.Add(bidOrder);LstBtcusdt.Add(askOrder);break;case "EOS-USDT":LstEosusdt.Add(bidOrder);LstEosusdt.Add(askOrder);break;case "ETH-USDT":LstEthusdt.Add(bidOrder);LstEthusdt.Add(askOrder);break;case "ONE-USDT":LstOneusdt.Add(bidOrder);LstOneusdt.Add(askOrder);break;case "EOS-BTC":LstEosbtc.Add(bidOrder);LstEosbtc.Add(askOrder);break;case "ETH-BTC":LstEthbtc.Add(bidOrder);LstEthbtc.Add(askOrder);break;case "EOS-ETH":LstEoseth.Add(bidOrder);LstEoseth.Add(askOrder);break;}
}
3. 主程序
private static Random _rdm = new Random();static void Main(string[] args)
{LSGOTextFileControlFacade fileControl = new LSGOTextFileControlFacade();string fileName = Environment.CurrentDirectory + @"\error.txt";double coff = 2.0;while (true){try{Brush("ONE-USDT", 5705.15*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);Brush("BTC-USDT", 0.002477*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);Brush("EOS-USDT", 7.06*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);Brush("ETH-USDT", 0.13660*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);Brush("EOS-BTC", 7.11*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);Brush("ETH-BTC", 0.13627);Thread.Sleep(_rdm.Next(1, 60) * 1000);Brush("EOS-ETH", 7.13*coff);Thread.Sleep(_rdm.Next(1, 60)*1000);}catch (Exception ex){DateTime dt = DateTime.Now;string date = LSGOComFun.TranslateToStdDateString(dt);string str = Environment.NewLine + date;str += Environment.NewLine + ex.StackTrace;str += Environment.NewLine + ex.Source;str += ex.Message + Environment.NewLine;Console.WriteLine(str);fileControl.FileWrite(fileName, str, Encoding.Default, true);Thread.Sleep(30*10000);}}
}
总结
以上就是我通过挂单的方式,利用 BigOne 的规则来刷贡献值的方法,怎么样?是不是很有用。
今天就到这里吧!See You!
相关图文:
- 资料分享:数学建模资料分享 – 图论部分
- 资料分享:数学建模资料分享 – 神经网络部分
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 实现 误差反向传播 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?
相关文章:

ASP.NET - Page 的生命周期
初始化(Initialization) 页面被请求时,第一个被执行的总是构造函数(constructor). 你可以在这里初始化很多自定义属性或对象。不过这里有一些限制,因为 page 还没有被完全初始化。特别地,你必须使用 HttpContext.Current 来访问 QueryString,…

【视频点播最佳实践】视频点播播放异常排查
阿里云视频点播是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速、视频播放于一体的一站式音视频点播解决方案。但是对于使用者来说经常遇到的问题即是视频点播中的视频如何对外提供服务,并且当播放出现异常时如何进行排查呢?本文主…

Java程序员技术培训需要培训哪些?
随着java技术行业的不断发展,越来越多的人想要学习java技术,那么想要成为一名优秀的java工程师,需要学习的技术知识是非常多的,下面小编就为大家详细的介绍一下Java程序员技术培训需要培训哪些? Java程序员技术培训需要培训哪些?…

VS2008 VS2010发布网站时如何产生固定命名的 Dll 文件
VS2008 发布网站时如何产生固定命名的 Dll 文件dev.firnow.com 时间 : 2010-12-08 作者:网络 编辑:fnw 点击: 82 [ 评论 ]--VS2008 在发布网站时,bin 目录里为所有 cs 生成的 dll 文件每次都是随机命名的&#…

LeetCode实战:两数相加
题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two nu…

计算机中的概念: 视图 VS 镜像
这两个概念还是不太一样的。下面来说说个人的理解,记录一下。 1. 镜像 镜像可以理解为一份完全一样的拷贝。也就是"深度拷贝",一个复制品。 比如 iso映像文件,ubuntu-12.04.5-desktop-amd64.iso 比如 数据的多副本,用于…

Python入门学习方法有哪些?
Python编程语言是相对比较简单的一门编程语言,在IT行业,很多零基础学员都会优先选择Python语言进行学习,希望可以进入到IT这个大家庭,那么想要学好Python编程,针对Python入门学习方法有哪些呢?来看看下面的详细介绍。…

LeetCode实战:寻找两个有序数组的中位数
题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (mn)). You may assume nums1 and nums2 cannot be both empty. Example 1: nums1 …

从Preact了解一个类React的框架是怎么实现的(一): 元素创建
首先欢迎大家关注我的掘金账号和Github博客,也算是对我的一点鼓励,毕竟写东西没法获得变现,能坚持下去也是靠的是自己的热情和大家的鼓励。 之前分享过几篇关于React的文章: React技术内幕: key带来了什么React技术内幕: setState的秘密其…

呵呵,哈哈,嘿嘿,从今天起就开始写博客文了
第一篇嘛,完完全全的水篇,因为确实不知道该写些什么好啦,恩,哈,以后就多写一些的了,嘘,玩别的去了!拜拜!转载于:https://www.cnblogs.com/thinkgao/archive/2011/04/26/2…

UI设计培训怎么选择就业方向
相信大部分人学习UI设计就是为了找到一份不错的工作,那么UI设计培训怎么选择就业方向呢?UI设计师有哪些就业方向选择呢?来看看下面的详细介绍吧。 UI设计培训怎么选择就业方向? 图形设计:图形设计不仅仅是美术的设计。在UI设计的工作中,图…

用JavaScript获取URL中的参数值
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"> <title>测试JS获取…
LeetCode实战:最长回文子串
题目英文 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1: Input: "babad" Output: "bab" Note: "aba" is also a valid answer.Example 2: Input: &quo…

2017年9月11日 梁勇 java教材 编程练习题 第二章 2.15 键盘 读取两个点的坐标值(小数),控制台输出两点间距离。...
package com.swift;import java.util.Scanner;public class PToP {public static void main(String[] args) {Scanner scannew Scanner(System.in);System.out.println("请输入第一个点的坐标值x1");Double x1Double.parseDouble(scan.nextLine());System.out.printl…

学习java技术有前途吗
java技术在我国的普及已经是非常广泛的了,很多人都知道,java行业的发展前景是非常好的,但竞争压力也是非常大的,到底学习java技术有前途吗?来看看下面的详细介绍。 学习java技术有前途吗?目前按照各类招聘来看,Java的…

充分理解表达式——《狂人C》习题解答2(第二章习题5)
/* 编程求1357911。 */ #include <stdio.h> #include <stdlib.h>int main( void ) {printf ("1357911") ; printf ("%d\n" , 1 3 5 7 9 11 ) ;system("PAUSE"); return 0;}这个题目的主要目的有两个: 1.掌握写整…

LeetCode实战:整数反转
题目英文 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321Example 2: Input: -123 Output: -321Example 3: Input: 120 Output: 21Note: Assume we are dealing with an environment which could only store integers …

深度洞悉2017企业IT三大关注焦点
本文讲的是深度洞悉2017企业IT三大关注焦点【IT168 云计算】随着经济走向整体放缓,2017有哪些议题会受到企业IT的关注? 一:如何提升员工工作体验 随着80后、90后成为职场主力军,数字化工作场所的推行与建立日渐成为主流,企业将更…

APP测试和传统软件测试有什么区别
APP测试和传统软件测试有什么区别?APP测试和传统测试是有一些区别的,移动APP的特点使得它与传统软件在开发、测试方面都有所不同。比较移动APP测试与传统软件测试的不同,要从以下几个方面进行考虑: (1) 页面布局不同 对于传统软件࿰…

LeetCode实战:字符串转换整数 (atoi)
题目英文 Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or…

[C#] enum 枚举
默认情况下,枚举第一个值是0, 可显式为枚举赋值。 可以定义枚举的基础类型,如enum E : short {}, sizeof(E) 2;默认情况下是int。 枚举的继承链:ValueType->Enum->enum 枚举类型和基础类型之间的转换都是显式的…

制作Windows Mobile程序安装包
使用Visual Studio 2005制作wm上的cab安装包 打开项目,解决方案中添加新项,添加"智能设置CAB项目";或者在空VS中新建一个"智能设置CAB项目" 添加新项 左侧的Program Files文件夹,没用可以删除 添加项目主输出…

学Java需要下载什么软件?都有什么作用?
学习java并非大家想象中的那么简单,除了书本和老师面授,软件的使用也有很大的作用,接下来小编为大家分享的就是关于“学Java需要下载什么软件?都有什么作用?”的内容,希望能够给正在学习java知识的同学带来帮助。 学Java需要下载…

一种新的攻击方式:使用Outlook 表单进行横向渗透和常驻
本文讲的是一种新的攻击方式:使用Outlook 表单进行横向渗透和常驻,背景最近我们针对CrowdStrike服务进行例行调查,发现了一种攻击方法,其主要用于横向渗透和系统常驻,而且是以前我们没有看到过的。这种攻击利用Microso…

ACM 1740 A New Stone Game http://acm.pku.cn/JudgeOnline/problem?id=1740
题目大意:有N堆石头,每堆石头数目在1到100之间,最多有10堆.两人分别取走石头.取石头的规则是:每次只能从1堆中取,每次取走至少1个.取过后还可以把这堆的石头任意分配到其它堆上(这些堆必须有石头,废话呵呵),当然也可以不分配.问给定这些石头堆的情况,两人轮流取,谁先取完谁胜利…

LeetCode实战:回文数
题目英文 Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: trueExample 2: Input: -121 Output: false Explanation: From left to right, it reads -121. From ri…

安全测试的基本原则有哪些?
软件测试顾名思义就是要进行软件安全方面的测试,对于软件测试人员来说,软件安全是一个广泛而复杂的主题,完全避免软件安全缺陷问题是不切实际的,但通过安全测试可以发现并修复软件大部分安全缺陷。下面介绍一些安全测试的基本原则…
LeetCode实战:盛最多水的容器
题目英文 Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a conta…

微软极品Sysinternals Suite工具包使用指南
微软极品Sysinternals Suite工具包使用指南 按照名称首字母排序,点击每个蓝色标题链接都可以转到微软的对应官方页面,有对这些工具包的直接下载地址和更详尽的用法。因为每个软件几乎都可以长篇大论的介绍,所以,在此就只做简介和罗…
【布局】圣杯布局双飞翼布局
背景 随着前端技术的发展推进,web端的布局方式已基本成熟,那么在网站布局方式中,三列布局最为常用,布局方式也有很多,渐渐的开发者们开始从效率的角度优化自己的代码“如果三排布局能将中间的模块放在dom树前面&#x…