Les ressources ont été chargées... Je charge...

_C

Réessayez la fonction de tolérance à la défaillance de l'interface.

La valeur de retour de la fonction de rappel lorsqu'elle est exécutée. Tous les types sont pris en charge par le système saufvaleur logique fausseetvaleur nulle.

Je ne sais pas. Je ne sais pas.

Le paramètrepfnest une référence de fonction, qui est unefonction de rappel- Je ne sais pas. pfn vrai fonction Paramètres àles fonctions de rappel, il peut y avoir plusieurs paramètresarg. Le type et le nombre de paramètresargdépend des paramètres dufonction de rappelJe suis désolée. arg faux chaîne, nombre, bool, objet, tableau, fonction, tous les types sont pris en charge par le système, tels que les valeurs nulles

function main(){
    var ticker = _C(exchange.GetTicker)
    // Adjust _C() function retry interval to 2 seconds
    _CDelay(2000)
    var depth = _C(exchange.GetDepth)
    Log(ticker)
    Log(depth)
}
def main():
    ticker = _C(exchange.GetTicker)
    _CDelay(2000)
    depth = _C(exchange.GetDepth)
    Log(ticker)
    Log(depth)
void main() {
    auto ticker = _C(exchange.GetTicker);
    _CDelay(2000);
    auto depth = _C(exchange.GetDepth);
    Log(ticker);
    Log(depth);
}

Pour les fonctions de tolérance à l'erreur sans paramètres:

function main(){
    var records = _C(exchange.GetRecords, PERIOD_D1)
    Log(records)
}
def main():
    records = _C(exchange.GetRecords, PERIOD_D1)
    Log(records)
void main() {
    auto records = _C(exchange.GetRecords, PERIOD_D1);
    Log(records);
}

Pour les fonctions dont les paramètres sont tolérants aux erreurs:

var test = function(a, b){
    var time = new Date().getTime() / 1000
    if(time % b == 3){
        Log("Eligible!", "#FF0000")
        return true
    }
    Log("Retry!", "#FF0000")
    return false
}            

function main(){
    var ret = _C(test, 1, 5)
    Log(ret)
}
import time
def test(a, b):
    ts = time.time()
    if ts % b == 3:
        Log("Eligible!", "#FF0000")
        return True
    Log("Retry!", "#FF0000")
    return False            

def main():
    ret = _C(test, 1, 5)
    Log(ret)
// C++ does not support fault tolerance for custom functions in this way

Il peut également être utilisé pour la tolérance aux pannes des fonctions personnalisées:

Le_C()fonction continuera à appeler la fonction spécifiée jusqu'à ce qu'elle renvoie avec succès (la fonction référencée par le paramètrepfnrendementsNuloufauxQuand il est appelé, il recommence à appelerpfnPar exemple:_C(exchange.GetTicker). L'intervalle de réessayer par défaut est de 3 secondes, vous pouvez appeler le_CDelay()fonction pour régler l'intervalle de réessayage._CDelay(1000)Les moyens de modifier l'intervalle de réessayage du_C()fonction à 1 seconde. La tolérance à la défaillance peut être effectuée pour, mais sans s'y limiter, les fonctions suivantes:

  • exchange.GetTicker()
  • exchange.GetDepth()
  • exchange.GetTrades()
  • exchange.GetRecords()
  • exchange.GetAccount()
  • exchange.GetOrders()
  • exchange.GetOrder()
  • exchange.GetPositions()Tous peuvent être appelés par le_C()La fonction de tolérance aux défauts_C()la fonction n'est pas limitée à la fonction de tolérance à la défaillance énumérée ci-dessus, le paramètrepfnest une référence de fonction plutôt qu'un appel de fonction. Notez qu'il est_C(exchange.GetTicker), pas_C(exchange.GetTicker()).
_ N _Croix