Le problème est que les variables globales sont définies, pourquoi les fonctions postérieures n'ont pas de valeur?

Auteur:le dahan, Créé: 2018-11-13 17:27:58, Mis à jour: 2018-11-14 09:11:29

var STATE_IDLE = 0;
var STATE_LONG = 1;
var STATE_SHORT = 2;
var State = STATE_IDLE;

function Trade(currentState, nextState) {

    if (currentState === STATE_IDLE) {
        if (nextState === STATE_LONG) {
            exchange.SetDirection("buy");
            AmountOP = InitAccount.Stocks * 10 / 2;
            exchange.Buy(_C(exchange.GetTicker).Sell, AmountOP);
            State = STATE_LONG;
        }

Il y a d'autres conditions à respecter qui changent la valeur de State, mais pourquoi est-ce que c'est toujours 0 et ne change pas?


Plus de

Le chatonLe code peut-il être complet, donc vous ne pouvez pas localiser le problème, vous pouvez produire une valeur modifiée pour voir si c'est le cas, le débogage normal peut localiser le problème.

Le petit rêveCela ressemble beaucoup à la stratégie duur thrust, la logique selon laquelle l'État ne devrait pas changer n'a pas déclenché la réévaluation de l'État.