量化策略是指使用计算机作为工具,通过一套固定的逻辑来分析、判断和决策。量化策略既可以自动执行,也可以人工执行。 一个完整的策略需要包含输入、策略处理逻辑、输出;策略处理逻辑需要考虑选股、择时、仓位管理和止盈止损等因素。
策略模式: 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。
具体介绍:
从数据处理角度来看:
输入:行情数据、基本面数据、数量化的新闻事件、成交回报等等 处理:数据的加工、逻辑判断运算 输出:交易订单
2.从建模的角度来看: 完成一个策略需要两大步骤,首先是策略研究;其次是策略的实现和改进。 假设前提:
-历史会重复,规律就隐藏在数据中
-行情发展是众多参与者行为共同作用的结果,人的金融行为集合是有迹可循的
建模过程:准备数据> 清洗加工> 挖掘 > 发现规律 > 提出模型假说 > 回测检验 结果:一个相对可靠的模型,并且在逻辑上是解释得通的; 模型只是研究的结果,还需要把模型用计算机程序实现出。
30行零成本搭建网格量化交易教学
前言
有人认为市场价格运动的方式是随机的,下一刻的价格涨跌的概率各是50%。于是就出现了被动仓位管理的网格类交易策略;
有人认为市场中80%的行情是震荡行情,只要把抓住震荡行情的利润,将足以弥补20%的趋势行情所带来的亏损。于是就出现了专门做短线震荡的交易策略;
有人认为 “ 得趋势者得天下 ” ,别的不做,只做趋势策略。“ 截断亏损,让利润奔跑 ” 对了就抱,错了就砍。长期下来20%的趋势行情利润,就能弥补80%震荡行情所带来的亏损。
等等等等…交易策略的种类犹如武功门派,数目众多,究其原因,每个人对事的看法不同,往大了说是人生观的不同。才导致了交易策略的不同。
最终,你恍然大悟,你会发现大部分交易策略都是能够赚钱的。最终亏钱的人是信念不够,或者太过贪婪,在一个又一个交易策略里跳进跳出,寻找所谓只赚不亏的 “ 圣杯 ” 。
我一直重复,做交易就是做人。
说明
下面,我们来看看这30行代码!!
循环
while(循环条件){
// 将会重复执行的代码
}
循环条件为真则反复执行{}内的代码。 循环条件为假 则跳出循环。
条件分支
if (判断条件){
// 执行代码
} else {
// 执行代码
}
很简单,翻译就是 如果(真){执行这代码}其 它情况{执行这代码}
赋值
name = “张三”;
就是把“张三”这个名字 给 name, 赋值容易与比较相等搞混
如 比较 为 == 两个等号,
例子 “张三”==“李四” 明显张三不是李四 所以 “张三”==“李四” 为假。
相关API GetTicker() 获取价格GetAccount() 获取账号余额Buy({ amount:数量 , price:价格}) 挂买单Sell({ amount:数量 , price:价格}) 挂卖单
源码
(async () => {
start = true; //开始挂网格单
Ticker = await GetTicker(); //获取价格
benchmarkPrice = Ticker.last; //价格基准
while(true){ //循环开始
Account = await GetAccount(); //每次查询账号余额
Ticker = await GetTicker(); //每次查询行情信息
if(start){
start = false;
IDBuy = await Buy({ amount:1 , price:benchmarkPrice - 10}); //挂单买进
IDSell = await Sell({ amount:1 , price:benchmarkPrice + 10}); //挂单卖出
}
if(IDBuy){
start = false;
Statu_Buy = (await GetOrder(IDBuy)).status;
if(Statu_Buy == 'closed' ){ //如果挂出的单已被成交,
benchmarkPrice = (await GetTicker()).last; //价格基准
await CancelAllOrders({}); //撤销全部单子
start = true; //重新挂网格单
}
}
if(IDSell){
start = false;
Statu_Sell = (await GetOrder(IDSell)).status;
if(Statu_Sell == 'closed'){ //如果挂出的单已被成交,
benchmarkPrice = (await GetTicker()).last; //价格基准
await CancelAllOrders({}); //撤销全部单子
start = true; //重新挂网格单
}
}
}
})();
30行代码就这么简单,然后把代码复制粘贴到博特平台策略编写器并且保存,你会在你的策略列表上看到。
注意:price:benchmarkPrice - 10 上面这个【10】 是你网格距离。amount:1上面的【1】是下单数量,这个可以自己调整。
在策略列表上看到你之前发布的策略后,然后点击搭载,进入搭载参数页面。 填写好后点击启动!! 历史性的一刻到了!策略编辑完成。
文章尽量都会每天及时更新。
对区块链或者币圈量化交易感兴趣的朋友可以关注并转发。
注明:出处 发明者量化