インターフェースの障害耐性を再試します
コールバック関数の実行時に返される値 システムでは,すべてのタイプがサポートされています.論理的誤り値そしてゼロ値.
_C(pfn) _C ((pfn,... args) について
パラメータpfn
函数参照であり,コールバック機能- わかった
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()
指定された関数を成功して返すまで呼び続けます (パラメータが参照する関数)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())
.