画线类库
इस टेम्पलेट को अपने नियंत्रण केंद्र में लाया गया है। आइए एक नज़र डालते हैंः画线类库
简化了策略图表画线的逻辑, 可以直接调用封装好的函数
支持画多条线
支持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)
}
}
इस टेम्पलेट का उपयोग करते समय आप निम्न समस्याओं का सामना कर सकते हैंः
इसका कारण यह है कि गणना की गई MACD सूचकांक मूल्य बहुत छोटा है, और बिटकॉइन के साथ एक Y-अक्ष का उपयोग करके अनुबंध मूल्य साझा करें चार्ट पर ऐसा होता है, सूचकांक बहुत कम स्थिति में है, K-लाइन कीमत बहुत उच्च स्थिति में है, और परिणाम (बहुत छोटा) में दिखाई नहीं देता है।
इसका समाधान चार्ट में एक और Y-अक्ष जोड़ना है, जिसे अलग से प्रदर्शित करने के लिए उपयोग किया जाता है। उदाहरण कोड निम्नानुसार हैः
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);
}
}
याद रखें कि जब आप परीक्षण कर रहे थे
तस्वीरें देखेंः
पेंगलिहेंगएक सप्ताह सिर्फ कोड लिखने का समय होता है, और पिछले कुछ महीनों में मैंने कोड सीखने में हिम्मत नहीं जुटाई।
पेंगलिहेंगसमस्या हल हो गई
पेंगलिहेंगबहुत बहुत धन्यवाद! https://dn-filebox.qbox.me/90d55ceceda193667f26b9b21d5122be8a2bcb2b.png लगभग एक हफ्ते के बाद, अंत में एक विज़ुअलाइज़ेबल सरल संस्करण लिखा गया है, केवल 1% लाभ के साथ, और कुल लाभ नकारात्मक है।
पेंगलिहेंगजब भी आप पेज खोलते हैं, तो एक पल के लिए ब्राउज़ करें ताकि आप देख सकें कि आपके द्वारा प्रदर्शित डेटा क्या है।
पेंगलिहेंगबहुत बहुत धन्यवाद, मैं गणना कर सकता हूं कि शुद्ध स्थानांतरण लाभ क्या है, लेकिन यह नीति चित्र ऐतिहासिक जानकारी नहीं बचा सकता है, मैं पृष्ठ को ताज़ा करने पर यह चार्ट क्यों आरंभ करता है?
आविष्कारक मात्रा - छोटे सपने
आविष्कारक मात्रा - छोटे सपनेएक सप्ताह में, तेजी से 666
आविष्कारक मात्रा - छोटे सपनेBotVS पर रोबोटों के चार्ट स्थायी रूप से लॉग इन डेटाबेस में रखे जाते हैं, आपके प्रशासक के स्थानीय स्तर पर, यदि हटा दिया जाता है, तो आप देख सकते हैं कि क्या आपके कोड में कोई आरंभिकता है।
आविष्कारक मात्रा - छोटे सपनेक्या? क्या यह...?