Type/to search
8
Follow
1375
Followers
दो Y अक्ष बनाने के लिए "लाइन ड्रॉइंग लाइब्रेरी" टेम्पलेट का उपयोग कैसे करें
Tutorials
Created 2017-04-07 14:14:29  Updated 2017-10-11 10:26:42
 9
 3901

2 Y-अक्षों को कैसे आकर्षित करें

  • पहले कॉपी कर लीजिये画线类库इस टेम्पलेट को अपने नियंत्रण केंद्र में ले जाया गया है.

画线类库 简化了策略图表画线的逻辑, 可以直接调用封装好的函数 支持画多条线 支持K线图 支持flag小图标 你也可以添加更多图形的支持 function main() { var isFirst = true while (true) { var records = exchange.GetRecords(); if (records && records.length > 0) { $.PlotRecords(records, 'BTC') if (isFirst) { $.PlotFlag(records[records.length-1].Time, 'Start', 'S') isFirst = false } } var ticker = exchange.GetTicker() if (ticker) { $.PlotLine('Last', ticker.Last) $.PlotTitle('Last ' + ticker.Last) } Sleep(60000) } }

इस टेम्पलेट का उपयोग करते समय आप इस तरह की समस्या का सामना कर सकते हैंः

img

इसका कारण यह है कि MACD सूचकांक का मूल्य बहुत छोटा है, और बिटकॉइन कॉन्ट्रैक्ट की कीमत एक Y-अक्ष का उपयोग कर रहा है। यह स्थिति चार्ट पर दिखाई देती है, सूचक बहुत कम स्थिति में है, और K लाइन की कीमत बहुत अधिक स्थिति में है, और परिणाम यह है कि दोनों स्थान बहुत छोटे हैं) ।

समाधान यह है कि एक Y-axis को चार्ट में जोड़ा जाए ताकि एक अलग सूचक रेखा दिखाई दे। उदाहरण कोड इस प्रकार हैः

var preTime = 0; var ChartObj = null; function main(){ LogReset(1); ChartObj = Chart(null); ChartObj.reset(); var records = null; var MACD = null; exchange.SetContractType("quarter"); // Log(exchange.GetUSDCNY()); // exchange.SetRate(exchange.GetUSDCNY()); exchange.SetRate(1); ChartObj = $.GetCfg(); ///* // 处理 指标轴------------------------ ChartObj.yAxis = [{ title: {text: 'K线'},//标题 style: {color: '#4572A7'},//样式 opposite: false //生成右边Y轴 }, { title:{text: "指标轴"}, opposite: true, //生成右边Y轴 ceshi } ]; // 初始化指标线 while(!records || records.length < 30){ records = _C(exchange.GetRecords); LogStatus("records.length:", records.length); Sleep(1000); } $.PlotRecords(records, 'OK期货'); $.PlotLine('dif', 0, records[records.length - 1].Time); $.PlotLine('dea', 0, records[records.length - 1].Time); var chart = $.PlotLine('macd', 0, records[records.length - 1].Time); // 修改指标线 坐标轴Y轴 for(var key in ChartObj.series){ if(ChartObj.series[key].name == 'dif' || ChartObj.series[key].name == 'dea' || ChartObj.series[key].name == 'macd'){ ChartObj.series[key].yAxis = 1; } } chart.update(ChartObj); chart.reset(); //*/ while(true){ records = _C(exchange.GetRecords); if(records.length > 50){ $.PlotRecords(records, 'OK期货'); MACD = TA.MACD(records); var dif = MACD[0]; var dea = MACD[1]; var macd = MACD[2]; if(preTime !== records[records.length - 1].Time){ $.PlotLine('dif', dif[dif.length - 2], records[records.length - 2].Time); $.PlotLine('dea', dea[dea.length - 2], records[records.length - 2].Time); $.PlotLine('macd', macd[macd.length - 2], records[records.length - 2].Time); $.PlotLine('dif', dif[dif.length - 1], records[records.length - 1].Time); $.PlotLine('dea', dea[dea.length - 1], records[records.length - 1].Time); $.PlotLine('macd', macd[macd.length - 1], records[records.length - 1].Time); preTime = records[records.length - 1].Time; }else{ $.PlotLine('dif', dif[dif.length - 1], records[records.length - 1].Time); $.PlotLine('dea', dea[dea.length - 1], records[records.length - 1].Time); $.PlotLine('macd', macd[macd.length - 1], records[records.length - 1].Time); } } LogStatus("records.length:", records.length, records[records.length - 1]); // Log(records[records.length - 1]); Sleep(1000); } }

याद रखें कि परीक्षण के दौरान img

वीडियो में देखेंः

img

Related Recommendations
Comment
All comments (9)

    。。。一周只是写代码的时间,前期学了几个多月都没敢动代码

    9 years ago

    问题已解决

    9 years ago

    非常感谢! img
    差不多一个星期了,终于写出可视化简易版,单纯搬砖收益1%,总收益为负的搬砖代码了

    9 years ago

    一个星期 速度 很快了 666

    9 years ago

    每次都要开启页面泡一会儿才能知道 图标化的数据信息

    9 years ago

    哦 ? 这...?

    9 years ago

    非常感谢,纯搬砖收益我会计算了,但是这个策略图就不能保存历史信息么,我为什么每次刷新页面,这个图表都会初始化。

    9 years ago

    BotVS 上的 机器人 的图表是 永久保存在日志 数据库的,在你的托管者 本地, 如果被清除了 您看下是不是 您代码里面有初始化 清除 图表的代码。

    9 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)