exchange.SetRate();
exchange.SetContractType("quarter");
exchange.SetMarginLevel(20);
Log("PERIOD_M15");
var records2 = exchange.GetRecords(PERIOD_M15);
var macd = TA.MACD(records2, 12, 26, 9);
Log(macd[0].length);
Log("dif0="+_N(macd[0][macd[0].length-1],4));
Log("dif1="+_N(macd[0][macd[0].length-2],4));
Log("dif2="+_N(macd[0][macd[0].length-3],4));
Log(macd[1].length);
Log("dea0="+_N(macd[1][macd[1].length-1],4));
Log("dea1="+_N(macd[1][macd[1].length-2],4));
Log("dea2="+_N(macd[1][macd[1].length-3],4));
Log(macd[2].length);
Log("macd0="+_N(macd[2][macd[2].length-1],4));
Log("macd1="+_N(macd[2][macd[2].length-2],4));
Log("macd2="+_N(macd[2][macd[2].length-3],4));
测试代码如下,输出来的数据和交易所网站上的macd的dif,dea,macd都不一样,是怎么回事啊?哪个地方弄错了吗?
発明者 量化 - 微かな夢この問題には多くの要因があります. 1,同じ契約かどうかを確認し,同じK線周期かどうかを確認し,同じ価格設定方法 (ドル価格またはCNY価格設定) を確認し,最初に取得したK線データと取引所が同じかどうかを比較するだけです. 2,K線の最後の列の閉じる価格はリアルタイムに変動するので,対応するこの位置の指標値もリアルタイムに変化し,異なる可能性があります. 3,指標庫アルゴリズム:一部のMACDの量列は dif-deaであり,いくつかのものは2倍 dif-deaであり,これはアルゴリズム的に異なるが, dif deaは同じアルゴリズムであるべきである. 4、データ量問題では,ある指標のK線データ量が大きいほど,計算がより精密である (大部分はイデレート,リキュレートアルゴリズムである).したがって,与えられたK線データの量は異なるので,計算される数値も異なる可能性がある.