Testes de retrospectiva e testes em disco real
Veja a documentação da API
Buy(Price, Amount) 下买单, Price为买单价格,Amount为数量, 返回一个订单ID
可以跟多余的参数做为附加消息显示到日志, 如exchange.Buy(1000,0.1, "OK", 123)
支持现货(火币/BitVC/OKCoin/OKCoin国际/OKCoin期货/BTCChina/BitYes)市价单, 市价单价格指定为-1
exchange.Buy(1000), 指买市价1000元的币, BTCChina例外exchange.Buy(0.3)指市价买0.3个币
Veja o código-fonte do teste:
function main() {
var ticker = null; // 用于获取ticker 行情。
Log("initAccount:", exchange.GetAccount()); // 获取初始账户信息。
Log("ticker:", ticker = exchange.GetTicker()); // 获取并打印行情
Log("3000元 预计买到 Amount:", 3000 / ticker.Last); // 计算下 Amount 传入 3000 预计按照当前的行情可以买入的数量。
exchange.Buy(-1, 3000); // 使用市价单, 在参数 Price 传入 -1 , 第二个参数 Amount 回测系统中为 法币。
Log("nowAccount:", exchange.GetAccount()); // 显示当前账户信息,用于对比 实际买入的数量。
}
Veja os resultados:
Nota: O parâmetro de Amount transmitido na detecção é o francês.
Como você pode ver, o inventor quantificou o disco de simulação não suportando o preço de mercado.
function main() {
var ticker = null;
Log("OKCoin 允许的BTC最小交易量:", 0.01); // 显示一下 OKCoin 允许的最小交易量
// GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
Log("initAccount:", exchange.GetAccount());
Log("ticker:", ticker = exchange.GetTicker());
exchange.Buy(-1, 200);
Log("nowAccount:", exchange.GetAccount());
}

A quantia recebida foi de 200 dólares, já que a conta não tinha dinheiro suficiente. Então, o parâmetro de Amount é o número de moedas negociadas?
exchange.Buy(-1, 0.5); // 这句的 第二个参数 原来是200 改为 0.5

Como você pode ver, o 0,5 que entrou aqui não foi de 0,5 moedas, mas de 0,5 moedas (a quantidade de RMB), e é por isso que o erro acima é mostrado.
A venda e a compra desta vez são diferentes.
function main() {
var ticker = null;
Log("OKCoin 允许的BTC最小交易量:", 0.01);
// GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
Log("initAccount:", exchange.GetAccount());
Log("ticker:", ticker = exchange.GetTicker());
exchange.Sell(-1, 0.5); // 注意这里 传入Amount 的值 0.5
Log("nowAccount:", exchange.GetAccount());
}
Resultados do backtesting:
Pode-se ver que o parâmetro de Amount inserido no uso de Sell é o número de moedas de BTC a serem negociadas, não o valor em moeda francesa, e é diferente de chamar Buy.
Eu fui até lá e fiz um teste de dinheiro.
function main() {
var ticker = null;
Log("OKCoin 允许的BTC最小交易量:", 0.01);
Log("initAccount:", exchange.GetAccount());
// GetMinStock 函数已经废除, 需要使用一个 变量代替 最小交易币数(或者设置成 界面参数)
Log("ticker:", ticker = exchange.GetTicker());
exchange.Sell(-1, 0.011); // 我实盘 冲进去了一点钱, 看看效果。
Sleep(5000);
Log("nowAccount:", exchange.GetAccount());
}
Resultados da operação:
Veja que o segundo parâmetro de Sell, Amount, é o número de moedas a serem negociadas.