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

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; }

江西宜春低调富豪彭义兴,外出闯荡多年返乡创业,如今身价15亿对于普通人来说,学习成功人士的发家之道从而掌握财富密码是一条切实可行的道路,正所谓站在巨人的肩膀之上才能够看得更远,我们研究了数百位亿万富翁的创业故事之后,发现他们无一例外都是集智服贸会闭幕外商期待进一步共享RCEP红利2022年中国国际服务贸易交易会(服贸会)5日闭幕。在会议期间举办的多场专项论坛上,包括亚洲非洲欧洲的海外嘉宾均表示,未来期待通过加深参与区域全面经济伙伴关系协定(RCEP)相关合消除数字鸿沟,数字人民币开展一系列产品无障碍改造提到无障碍所面向的人群,人们的第一反应往往是老年人或残障群体,然而除他们以外,还有一些群体,他们并不是由于身体方面的原因导致出现障碍,而是由于环境个人发展政策等因素或特定场景而导致华为MateBookXPro发布最懂你的办公伙伴,让智慧轻薄本有新体验上个月华为发布了全新一代超薄旗舰型笔记本华为全新小镁本MateBookXPro,这款产品是华为旗下最新的旗舰型产品,也是品牌历时一年打造的顶级作品。那么如今轻薄笔记本市场如此火爆的Mate50系列上的HarmonyOS3。0,会有什么变化?96日华为就要发布已经时隔两年没有更新的Mate系列最新成员华为Mate50系列手机了。理所应当,这也会成为首款搭载正式版HarmonyOS3。0的华为手机。现在我们使用的都是be硬刚iPhone14!华为Mate50配置官宣可变光圈稳了再过几天,就是华为Mate50系列发布的日子了,而在今天,华为官方确认,Mate50Pro系列新机将搭载6叶片的可变光圈镜头模组。(图片来自华为官方)关于可变光圈的具体技术细节,华太行一号旅游路平定段系列报道之一长歌万里路古州气象新八百里巍巍太行,崇山峻岭,峰峦叠嶂。曾几何时,羊肠鸟道,重重天险,让多少古村灰眉土眼,让多少美景深藏不露,让多少农副产品卖不了好价钱,让多少植根于太行山区的平定百姓望路兴叹。乡村要华为新机卖断货,我有话说今天看到很多,关于华为MATE50系列手机卖断货的消息。不知道是真的假的,不是说现在的消费在降级吗?这不是我关心的,因为我不会买。不买的原因很简单,4000以上的手机跟我都无缘。买走进县城看发展吉林省梅河口市美丽的小城投资的沃土梅河口市是吉林省东南部的一个县级市,不通高铁,没有机场,也不沿海沿边,却连续多年位列吉林省县域经济综合考评第一名,是东北地区的人口净流入城市之一,更在去年9月被批准建立省级新区梅河国乒女队4人无缘正赛,男队豪取8连胜!世青赛冠军连丢3局03惨败国乒女队4人无缘正赛,男队豪取8连胜!世青赛冠军连丢3局03惨败。2022年WTT阿曼常规挑战赛已经拉开战幕了,在首个比赛日,国乒出现了多场内战,其中女单已经有4人无缘正赛,男单则世界足坛那些让人匪夷所思的纪录,这里有5个被认为最难打破的巴萨2009年夺得六冠王,下一次出现10年后。梅西个人获得7座金球奖,下一次出现30年后。梅西1个自然年进球91个,被超越需要35年后。马拉多纳1986世界杯5进球5助攻,被超越需
明镜为鉴10个数字化转型成功案例全球多数企业正纷纷启动企业数字化的相关计划,借以提升业务增长和运营绩效。本文所列举的数字化转型范例,将为读者详细介绍IT领导者所面临的策略实践过程及挑战。www。szhzxw。cn荣耀时刻丨国贸地产获评2022年度客户口碑奖12月16日,由中国信息协会客户联络中心分会客户观察联合主办的2022(第七届)中国客户联络中心行业发展年会盛大举行,厦门国贸地产集团有限公司荣获中国客户联络中心颁发的2022年度IPO数次折戟的燕之屋,难破资本困局编辑于斌出品潮起网于见专栏燕窝自古以来,便被奉为滋补养生之佳品,尤其是对本就对美有着天然追求的女性,能每日食用一些燕窝,是许多女性的养颜梦想。作为燕窝行业的龙头老大,燕之屋一直致力华为门店里要卖的车越来越多争夺华为渠道资源的车企越来越多。与此同时,华为不造车的三年之约,还有一年到期华为上海南京东路旗舰店内的问界车型。摄影财经记者王静仪文财经记者王静仪李皙寅编辑赵成诞生不到一年的新品牌历时5年,手K关键帧年度现象级国产动画三体的制作过程整理自中国电影报道综艺报导演帮订阅0108609206212月10日,期待已久的三体动画在哔哩哔哩全网独家上线,首周两集连播。首播日全网热搜120个,开播10小时播放量破亿,创下动印度侵占东章瀑布东章瀑布位于我国西藏自治区山南市错那县浪坡乡南部浪坡沟的一个风景如画的高原原始森林河谷处。东章瀑布是来源于错那河,由于东章瀑布地区属于藏南地区,由于喜马拉雅山阻挡,来自印度洋的暖湿西藏冒险王镜头里喜马拉雅山间的蓝宝石冰川科普探险家王相军先生2020年五月份发布的作品,喜马拉雅山调研现场。当时和他同行的是他雇佣的印度向导。帮他引路和背包。老王随着镜头解说道现在我到了一个蓝色的冰冻湖的一个位置啊!6000字长文印度第一财团塔塔集团,到底是什么来头?最近,芯片行业依旧新事不断,台积电追加美国新厂投资至400亿美元,大有成为美积电之势。与国内芯片热潮类似,印度同样开始用巨型投资推动印度芯片自主化,著名的塔塔集团领下任务,宣布未来铝碳酸镁对伴胆汁反流的胃溃疡患者的作用胃溃疡是一种广泛发作的消化系统疾病,一般认为是十二指肠活动异常所致,十二指肠与胃窦失去协调性,进入十二指肠的胆汁随食糜反流入胃,胆汁中含有大量的胆汁酸,对胃无明显刺激。但经过与食糜丁俊晖作为主任!没有起到监督作用,还拒绝为假球担责,引起争议丁俊晖作为主任!没有起到监督作用,还拒绝为假球担责,引起争议。中国斯诺克7位球员打假球的事件持续发酵,目前世界台联已经开始调查所有中国球员的手机,以便获取更多的信息,后面还会公布相重温东方快车谋杀案!见证推理女王阿加莎创作过程WELCOMETOISTANBUL探索伊斯坦布尔第一家奢华酒店见证推理女王创作东方快车谋杀案乘坐东方快车开启一场神秘的豪华异域之旅吧一直去往欧亚大陆的心脏地带到达浪漫的土耳其让伊斯