范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

CrpytoQuant加密资产量化从0开始之1下单执行(小白版)

  0x0 题记书接上文  上次一次不是写了一篇《Crpyto-Quant 加密资产量化从0开始之0信号通知》。但是没写如何自动下单交易。既然quant肯定要自动化了。今天就开始如何自动化,由0到1了。0x1 操作修改原来信号模块,增加返回 return  数据信号数据1  和-1  ,注释掉邮件通知。function getboll() { //信号捕捉模块     var records = exchange.GetRecords(14400); //获取K线周期为4小时的K线数据     if (records && records.length > 20) {         var boll = TA.BOLL(records, 20, 3) //将K线数据转换为boll带数据         var upLine = boll[0]         var midLine = boll[1]         var downLine = boll[2]         var price = exchange.GetTicker().Last         if (price > upLine[upLine.length - 1]) { // 对比成交价与boll上轨线           //注释邮件通  sendtomail("卖出信号", "价格:" + price + "大于BOLL上轨线:" + upLine[upLine.length - 1]) //发送邮件             Log("卖出信号:" + "价格:" + price + "大于BOLL上轨线:" + upLine[upLine.length - 1] + "@") //打印信号信息             return -1;  //返回-1 等于返回一个卖出信号         } else if (price < downLine[downLine.length - 1]) {            //注释邮件通知 sendtomail("买入信号", "价格:" + price + "小于BOLL下轨线:" + downLine[downLine.length - 1])             Log("买入信号:" + "价格:" + price + "小于BOLL下轨线:" + downLine[downLine.length - 1] + "@")             return 1 //返回-1 等于返回一个卖出信号         }     }     return 0; }  设置一个全局的交易者信息,主要用于设置一些全局信息  let trader = { //初始化          direction: 0, //买卖方向标记         tip: 10, //下单数量         order: 0,      //下单确认开关         lever: 20, ////杠杆倍数         period: "quarter", ////合约类型,这儿设置为季度合约         long: 35, //止盈点设置,均已usd都是简单计算         close: -50 //止损点设置     };  添加主执行模块 function fox(trader) { //执行主模块     var id;     var aount = exchange.GetAccount(); //获取账户信息     if (trader.order == 1) {           //再次确认下单信号         if (trader.direction == 1) {   //判断下单方向             price = getprice("buy", 1);  //获取执行价格,这儿是买二价格,             if (aount.Stocks > trader.tip / trader.lever) {                 exchange.SetDirection("buy");                 id = exchange.Buy(price, trader.tip);                                  if (id != null) {                     trader.price = price;                     trader.direction = 0;                 }             }          } else if (trader.direction == -1) {             price = getprice("sell", 1);             if (aount.Stocks >= trader.tip / trader.lever) {                 exchange.SetDirection("sell")                 id = exchange.Sell(price, trader.tip)                 trader.price = price;                 trader.direction = 0;             }         }     }     return trader; } 修改主函数  while (true) {         if (tm == 60) { //1分钟执行一次             if(trader.order==0){  //确认无订单状态                 let signal=getboll(trader); //获取入市信号               if(signal!=0){  //确认入市信号                   trader.order=1   //改变交易下单信息                   trader.direction=signal;//设置买卖方向                   trader = fox(trader); //进入执行模块               }             }                        tm = 0;         }                trader = riskcode(trader); //执行风险控制代码         Sleep(1000); //1秒执行一次         tm++;     } } 0x2 回测设置回测信息 /*backtest start: 2022-01-01 00:00:00 end: 2023-03-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_HuobiDM","currency":"BTC_USD"}] */
  当然也可以通过系统提供来设置 回测效果展示
  可以通过K线图来判断,是否策略执行效果,是否在需要的点位上。
  夏普率是有点低,回撤还好。当然这是完全用的固定回报比垃圾风控仓位管理方式。其实很多系统的灵魂其实不是在入市信号上,更多的灵魂是在风控上或者是在平仓方面。 0x3 后记今天展示如何执行订单。本来还计划准备专门写一下动态仓位管理与风控的。可能短期没什么时间。看看以后…目前也算由0到1了。 附录全部源码 /*backtest start: 2022-01-01 00:00:00 end: 2023-03-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_HuobiDM","currency":"BTC_USD"}] */    function main() { //主程序入口      let tm = 0; //初始化次数     let trader = { //初始化          direction: 0, //买卖方向标记         tip: 10, //下单数量         order: 0, //下单确认开关         lever: 20, ////杠杆倍数         period: "quarter", ////合约类型,这儿设置为季度合约         long: 35, //止盈点设置,均已usd都是简单计算         close: -50 //止损点设置      };     exchange.SetContractType(trader.period); //设置合约类型     exchange.SetMarginLevel(trader.lever); //设置杠杆倍数     while (true) {         if (tm == 60) { //1分钟执行一次             if (trader.order == 0) {                 let signal = getboll(trader);                 if (signal != 0) {                     trader.order = 1                     trader.direction = signal;                     trader = fox(trader);                 }             }              tm = 0;         }          trader = riskcode(trader); //执行风险控制代码         Sleep(1000); //1秒执行一次         tm++;     } }   function getboll() { //信号捕捉模块     let records = exchange.GetRecords(14400); //获取K线周期为4小时的K线数据     if (records && records.length > 20) {         var boll = TA.BOLL(records, 20, 3) //将K线数据转换为boll带数据         var upLine = boll[0]         var midLine = boll[1]         var downLine = boll[2]         var price = exchange.GetTicker().Last         if (price > upLine[upLine.length - 1]) { // 对比成交价与boll上轨线             //注释邮件通  sendtomail("卖出信号", "价格:" + price + "大于BOLL上轨线:" + upLine[upLine.length - 1]) //发送邮件             Log("卖出信号:" + "价格:" + price + "大于BOLL上轨线:" + upLine[upLine.length - 1] + "@") //打印信号信息             return -1; //返回-1 等于返回一个卖出信号         } else if (price < downLine[downLine.length - 1]) {             //注释邮件通知 sendtomail("买入信号", "价格:" + price + "小于BOLL下轨线:" + downLine[downLine.length - 1])             Log("买入信号:" + "价格:" + price + "小于BOLL下轨线:" + downLine[downLine.length - 1] + "@")             return 1 //返回-1 等于返回一个卖出信号         }     }     return 0; }      function getprice(type, i) { //获取买卖二价     var price = 0;     var depth = exchange.GetDepth();     if (type == "buy") {         price = depth.Asks[i].Price;     } else if (type == "sell") {         price = depth.Bids[i].Price;     } else {         Log("不交易");     }      return price; }  function fox(trader) { //执行主模块     var id;     var aount = exchange.GetAccount();     if (trader.order == 1) {         if (trader.direction == 1) {             price = getprice("buy", 1);             if (aount.Stocks > trader.tip / trader.lever) {                 exchange.SetDirection("buy");                 id = exchange.Buy(price, trader.tip);                  if (id != null) {                     trader.price = price;                     trader.direction = 0;                 }             }          } else if (trader.direction == -1) {             price = getprice("sell", 1);             if (aount.Stocks >= trader.tip / trader.lever) {                 exchange.SetDirection("sell")                 id = exchange.Sell(price, trader.tip)                 trader.price = price;                 trader.direction = 0;             }         }     }      return trader; }      function usdt(trader) { //usdt转换     pricedata = {         long: 0,         close: 0     }     price = getprice("sell", 0);     pricedata.long = trader.long / price;     pricedata.close = trader.close / price;     return pricedata; }    function closeorder(direction, trader) {     var id;     var pricedata = usdt(trader);     if (direction.Profit > pricedata.long || direction.Profit < pricedata.close) {         if (direction.Type == 0) {             price = getprice("sell", 0);             exchange.SetDirection("closebuy");             id = exchange.Sell(price, trader.tip);             if (id != null) {                 trader.order = 0;             } else {                 price = getprice("sell", 0);                 id = exchange.Sell(price, trader.tip);             }          } else if (direction.Type == 1) {             price = getprice("buy", 0);             exchange.SetDirection("closesell");             id = exchange.Buy(price, trader.tip);             if (id != null) {                 trader.order = 0;             } else {                 price = getprice("buy", 0);                 id = exchange.Buy(price, trader.tip);             }         }         Log(direction.Profit);     } }  function riskcode(trader) {     var position = exchange.GetPosition();     if (position.length >= 1) {         for (var i = 0; i < position.length; i++) {             closeorder(position[i], trader);         }     }     return trader; }

宋丹丹62岁生日趴变小春晚,大咖云集,却未见杨紫8月25日,对大家来说,是非常平凡的一天,但是对娱乐圈来说,却是个与众不同的一天,因为这一天是宋丹丹的62岁生日,聚集了半个娱乐圈的人,都有谁呢?大家好这里是哈哈和你讲娱乐,不要走61岁刘德华也老了!新照哈腰驼背还颈纹抢镜,女儿刘向蕙却才10岁年过六旬的刘德华虽然比同龄人年轻,但是不服老也不行了,他拍戏时记录自己一天工作的视频曝光,没想到昔日偶像意气风发不再,而是老成了一个老头儿,只是他的女儿还没有成年,还在拼命工作估计不可一世的谢娜,为何走到今天这一步?文大牌娱姐知乎上,有人曾经提出这样一个问题谢娜为什么招人讨厌?网友很快集思广益,给出了各种五花八门的答案,竟然找不到重复的。黄磊曾调侃她人生浅薄,缺乏厚度。然而这句看似玩笑的评价,By2妹妹Yumi去游乐园玩瘦一大圈,姐姐罕见发文是身体危险信号台湾双胞胎女团By2近年前往大陆发展,但妹妹Yumi却在去年底意外被卷入王力宏事件,沉寂了好一段时间,终于慢慢重回到萤光幕前。日前Yumi去游乐园玩,却被发现整个人似乎又瘦了一大圈21岁德国模特凭精灵美貌爆红!却离奇失踪背后牵出黑暗内幕3年前,有个名叫Chloe的德国模特,在INS上横空出世。一张娇媚又可爱的脸,让她宛如童话里的精灵现世就算人们拿着放大镜,在她脸上也找不出任何缺点。这位98年生的模特,凭借精灵系的曝宋喆9月即将出狱,马蓉为何宁愿花千万移民也不愿见面?最近有媒体爆料,宋喆9月份即将出狱。想想也是,自从王宝强2016年8月14号在微博上宣布离婚,马蓉和宋喆的婚外情也随之被公之于众。随后宋喆于9月13日以职务侵占罪被逮捕,同年10月演员黄磊绯闻是绯闻,妻子是妻子,永不辜负18岁就跟了我的孙莉关注我,每天带来名人感动的故事!黄磊,是国内著名演员编剧教师,在北京电影学院表演系任教,参演过边走边唱夜半歌声人间四月天四世同堂婚姻保卫战等影视作品。在演艺圈中,黄磊是一个特别幸运CBA最新消息!苏伟成为老板,辽宁老臣意外受伤,北控签顶级后卫最近一段时间,很多球迷都关心几位离开CBA赛场的名将,其中就包括了苏伟。其实苏伟退役已经不是什么秘密,因为他成为一家青少年篮球培训机构的老板,按照苏伟的计划,他将会打造自己的青训体孩子满嘴小黑牙,糖果并非罪魁祸首,这3个原因是根本如今,小孩长蛀牙已经成了非常普遍的事情。第四次全国口腔流行病学调查结果显示,12岁儿童恒牙龋患率为34。5,5岁儿童乳牙龋患率高达70。9,每10名5岁孩子中,就有7名患上了龋齿。和孩子讲道理发脾气都是下策,教育的上策是什么?(特别家教1103期)为了在特殊时期为家长提供特别的家庭教育指导,全国妇联推出了特殊时期特别家教微信栏目,家长可以通过家庭教育微课学习家庭教育知识。和孩子讲道理发脾气都是下策,教育的上策是什么?(特别家2022年还剩4个月,十大烂剧已出炉,每一部都烂得清新脱俗转眼间就来到2022年的8月底,在此之前已经有几十部剧播出。从开端到猎罪图鉴和梦华录,再到暑期爆剧苍兰诀,都获得许多流量和好评。有好剧就有烂剧,2022年到底出了哪些烂剧呢?01。
邓伦风波过后首现身,被爆多方证实即将复出,素颜露面,胆怯躲避邓伦近照曝光,丑闻风波过后首露面,有瓜爆料邓伦即将复出娱乐圈,疑在试探当中。近日,邓伦低调现身露面,一身黑色休闲穿搭,戴着同款黑色帽子,帅气洒脱,素颜出镜依旧能打,看上去状态非常好学雷锋去发光我们是00后雷锋精神代言人今年是毛泽东等老一辈革命家为雷锋同志题词60周年,3月5日,我们迎来第60个学雷锋纪念日。60年来,雷锋的名字深深地根植于人们的心中,雷锋精神也影响了一代又一代的中国人,学雷锋在中海南海口百花绽放春满园来源人民网海口万绿园内三角梅心形拱门吸引市民拍照。王德广摄人民网海口3月3日电(刘瀚涛)阳春三月,春暖花开,随着气温的回升,海南省海口市迎来了一年一度的花季盛宴。在万绿园和美舍河湿这款车能让年轻人混出精致感在电动化浪潮下,混合动力车型兼顾电动车经济性和燃油车动力性,将成为平替燃油车的最佳选择。近日上市的广汽本田ZRV致在eHEV采用了全新设计语言,定位在缤智和皓影之间,它的到来进一步加内特湖人双星出现分歧,戴维斯或将被交易NBA名人堂球星加内特在最近的一次采访中透露,湖人双星詹姆斯和戴维斯在合作上出现了分歧。加内特认为,在詹姆斯得到登基史上得分王的时候,戴维斯完全没有表现出任何情绪。目前,戴维斯在球复合了?王菲晒与谢霆锋浴室照,男方眼神宠溺,张柏芝再沦为备胎谢霆锋和王菲谈了一段不以结婚为目的的恋爱,遭到了很多人的不理解!在这个大环境之下,外面诱惑太多,即便领了证办了婚礼的婚姻,都不一定有保障,更何况像他们这种不受法律保护的感情了。在旁张馨予红色泪钻妆出席活动,气场全开眼神里有股狠劲,结婚后好自信近日,张馨予受邀参加时尚活动。一身红裙,扎着高马尾的她好惊艳,举手投足间流露出成熟的魅力。眼下的红色泪钻妆是一大亮点,衬得她整个人更加明艳动人。秀场上的张馨予,步伐自信,气场全开,卡戴珊小妹累了!詹娜新恋情曝光后首度现身眼神疲惫不忘秀大长腿聚焦体坛花边,关注名人动向。漂亮国最具吸睛家族卡戴珊姐妹花轮流占据着时尚流量新闻前端。继前段时间金。卡戴珊和科勒卡戴珊与TT闹得沸沸扬扬传闻之后,此前一直充当后来者的四妹肯达尔经过2023年了,还有没有必要看肖申克的救赎肖申克的救赎是一部1994年上映的美国剧情电影,由弗兰克德拉邦特执导,蒂姆罗宾斯和摩根弗里曼主演。这部电影自上映以来就一直备受观众和评论家的好评,凭借其卓越的表现和优秀的制作获得了今天,正式开通!3月4日上午一架西锐SR20飞机载着中国工艺美术大师葛军从无锡丁蜀机场飞赴盐城射阳这标志着宜兴射阳转场航线正式开辟陶航新模式探索迈出第一步葛军与助手一同登机,实现了在家门口打飞的的群英会摄影世界第144期风光生态精品辑群英会摄影世界选择全国各地摄影者作品,供各界摄影爱好者学习文流品鉴。群英会摄影世界摄影作品排名不分先后顺序,作品版权归作者所有。责编光影幽兰风光建筑篇摄中情一汉中张永德一上海金柱子