我试着用Binance的API计算5米间隔的方向运动指示器。我使用288个“高”、“打开”和“关闭”的值,计算真实范围,然后用一个有14个值的窗口的简单移动平均范围(ATR)计算。我使用了同样简单的移动平均技术来计算+DI、-DI和ADX,但是我得到的值与DMI的交易视图中显示的值不匹配。我也尝试使用指数移动平均,ATR,+Di和-DI,但我仍然没有得到匹配的值。我也注意到宾斯和贸易的DMI不匹配。你知道交易视图的DMI使用哪种平滑技术吗?
$url = 'https://api.binance.com/api/v3/klines?symbol=BNBBTC&interval=5m&limit=288';
$candles = file_get_contents($url);
$candles = json_decode($candles, true);
$arr_results = array();
$high = array();
$low = array();
$close_arr = array();
$average = array();
for($i= 0; $i < sizeof($candles); $i++){
array_push($high, $candles[$i][2]);
array_push($low, $candles[$i][3]);
array_push($close_arr, $candles[$i][4]);
$av = ($candles[$i][2] + $candles[$i][3]) /2;
array_push($average, $av);
}
$plus_di = array_pop(trader_plus_di($high, $low, $close_arr, 14));
$minus_di = array_pop(trader_minus_di($high, $low, $close_arr, 14));
$adx = array_pop(trader_adx ($high, $low, $close_arr, 14));发布于 2022-08-10 00:58:39
要计算ATR,需要按照以下方法平滑TR (True范围):
以平滑周期nbCandles (通常为nbCandles=14蜡烛)为例,然后:
ATR(i) = ATR(i-1) - ATR(i-1)/nbCandles + TR(i)
下面是一个例子(基于30 1分钟蜡烛的历史记录和14作为平滑因子(用于平滑的蜡烛数目)):
https://stackoverflow.com/questions/62624596
复制相似问题