В процессе загрузки ресурсов... загрузка...

_C

Попробуйте заново функцию допустимости ошибок интерфейса.

Возвратное значение функции обратного вызова при ее выполнении. Все типы поддерживаются системой, кромеЛогическое ложное значениеинулевое значение.

_C (((pfn) _C ((pfn,...args)

Параметрpfnявляется функцией ссылки, которая являетсяфункция обратного вызова- Да. пфн неправда Функция Параметры дофункции обратного вызова, может быть более одного параметраarg. Тип и количество параметровargзависит от параметровфункция обратного вызова- Да. арг ложное строка, число, bool, объект, массив, функция, все типы поддерживаются системой, такие как нулевые значения

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);
}

Для ошибочно-толерантных функций без параметров:

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);
}

Для функций с параметрами, которые допускают ошибки:

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

Он также может быть использован для отказоустойчивости пользовательских функций:

В_C()function будет продолжать вызвать указанную функцию, пока она не вернется успешно (функция, на которую ссылается параметрpfnдоходынулевойилиложныйкогда вызовут, перепробует вызватьpfnНапример,_C(exchange.GetTicker). Интервал повторного попытки по умолчанию составляет 3 секунды, вы можете вызвать_CDelay()функция для установки интервала повторных попыток._CDelay(1000)средства для изменения интервала повторных попыток_C()Функция на 1 секунду. Пропускная способность к ошибкам может быть выполнена для, но не ограничивается, следующими функциями:

  • exchange.GetTicker()
  • exchange.GetDepth()
  • exchange.GetTrades()
  • exchange.GetRecords()
  • exchange.GetAccount()
  • exchange.GetOrders()
  • exchange.GetOrder()
  • exchange.GetPositions()Все могут быть вызваны_C()Функция допустимости неисправностей_C()функция не ограничивается вышеперечисленной функцией допустимости неисправности, параметромpfnявляется ссылкой на функцию, а не вызовом функции. Заметьте, что это_C(exchange.GetTicker), нет_C(exchange.GetTicker()).
_N _Кросс