Die Erträge können zusammen mit der Strategie gesetzt werden, aber sie sind besser, wenn sie unabhängig voneinander ausgeführt werden. Gründe: (1) Die Erträge werden nicht neu eingestellt, wenn die Transaktionspolitik geändert wird. (2) Die Ertragsberechnung selbst ruft die API-Funktion an, was häufig zu einem Netzwerkfehler der Strategie-API führt, der den Transaktionsbetrieb beeinflusst und die Möglichkeit reduziert, dass die Transaktionen unabhängig voneinander ausgeführt werden. (3) Die Zyklusintervalle können angepasst werden.
function adjustFloat(v) { return Math.floor(v*1000)/1000; } function GetAccount() { var account; while (!(account = exchange.GetAccount())) { Sleep(1000); } return account; } function GetTicker() { var ticker; while (!(ticker = exchange.GetTicker())) { Sleep(1000); } return ticker; } function updateProfit(accountInit, accountNow, ticker) { var netNow = accountNow.Balance + accountNow.FrozenBalance + ((accountNow.Stocks + accountNow.FrozenStocks) * ticker.Buy); var netInit = accountInit.Balance + accountInit.FrozenBalance + ((accountInit.Stocks + accountInit.FrozenStocks) * ticker.Buy); LogProfit(adjustFloat(netNow - netInit), accountNow); } function main() { InitAccount = GetAccount(); while (true) { updateProfit(InitAccount, GetAccount(), GetTicker()); Sleep(5000); } }