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선 데이터 양이 다르며 계산 값도 다를 수 있다.