Die Ressourcen sind geladen. Beförderung...

JavaScript-Richtlinien werden im Chrome-Browser von DevTools deaktiviert

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2022-06-22 14:23:26, Aktualisiert: 2023-09-18 20:24:01

img

JavaScript-Richtlinien werden im Chrome-Browser von DevTools deaktiviert

Für Debugging-Strategien in Retargeting-Systemen kann man normalerweise nurLog()Die Funktion. DEBUG ist sehr uneffizient und für Neulinge mit wenig Erfahrung im Programm-Testen schwierig.JavaScriptDie Strategie des Debugs der SpracheChromeDie Browser unterstützen das System besser. Es ist möglich, Bremsschnitt- und Einstufungsdebugging, Variablenwert- und Expressions-Monitoring, etc. zu ermöglichen.JavascriptDEBUG bei der Wiederholung der Sprachpolitik.JavascriptDie Sprachstrategien unterstützen diese Art der Debugging.

Das ist ein großes Problem.debuggerAnweisung

Einfügen in die Strategiecode der JavaScript-Sprache auf FMZdebuggerEine Anweisung, die bei einem Wiederholungsvorgang die Ausführung eines Programms unterbrechen kann.

Wir haben folgende Teststrategie-Code verwendet:

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var n = 1 
    while (true) {
        var t = exchange.GetTicker()
        debugger
        var r = exchange.GetRecords()
        if (n == 1) {
            // 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性,属性名区分大小写
            var id = exchange.Buy(t.buy, 0.1)    
            var orderBuy = exchange.GetOrder(id)
        }
        Sleep(500)
    }
}

Aus der Wiederholung des Konfigurationscodes

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

Wie Sie sehen können, wurde bei unserer Rezension die Börse Binance (Binance) auf der Stelle hinzugefügt, die wie folgt konfiguriert ist:

img

Wenn wir weiter auf die Strategie-Code schauen, können wir sehen, dassvar t = exchange.GetTicker()Und wir schreiben:debuggerDie Anweisung ist gleichbedeutend mit einem Punkt, an dem die Ausführung des Programms aufhört.debuggerEs ist jedoch nicht empfehlenswert, dies zu tun, wenn man nur einen Abbruch an einem bestimmten Ort schreibt, der in der Debugging-Funktion von DevTools des Browsers eingestellt werden kann.

Es ist nicht möglich, dass Sie das Internet nicht nutzen können.DevToolsUnd dann wiederholen Sie die Wiederholung, die in Ihrem Code festgelegt ist.debuggerDas heißt, dass wir uns nicht mehr auf die Tatsache konzentrieren.debuggerDas Programm wird ignoriert und die wiederholte Strategie kann nicht unterbrochen werden.DevToolsNach der Wiederholung der Strategie wird die Strategie-Prozedur unterbrochen.debuggerDie Position.debuggerSie können auch in der globalen Reichweite des Code-Strategies eingestellt werden.

Wir öffnen den Chrome-Browser.DevToolsEs gibt zwei Arten, wie das Tool funktioniert:

  • 1. Wir klicken mit der rechten Taste auf die Popup-Menüseite.

    img

    Wenn wir auf "Check" klicken, zeigt sich die DevTools-Oberfläche.

  • 2. Verwenden Sie die Schaltfläche.

    Sie können es auch mit der Schaltfläche öffnen.Command+Option+I (Mac)oderControl+Shift+I(Windows、Linux)Öffnen.DevTools

Öffnen.DevToolsDie Folge:

img

Die Benutzeroberfläche von DEBUG in einem Browser für die JavaScript-Sprachpolitik

Wenn wir dann auf "Start Retest" klicken, wird die Retest-Politik ausgelöst, da die Code-Einstellungen für die Re-Retest-Politik in der ersten Stufe des Tests nicht funktionieren, sondern nur die Re-Retest-Politik in der zweiten Stufe.debuggerInstructions, Strategien in der entsprechenden Position unterbrechen und warten.

img

Sie können sehen, dass in der StrategiedebuggerMarkieren Sie den Ort der Unterbrechung, und der gesamte Prozess führt nur die n-Zuteilung zu 1, die t-Zuteilung zuGetTickerDie Funktion gibt die Daten zurück. In den roten Feldern in der Abbildung oben können Sie die Werte der einzelnen Variablen sehen, so dass Sie bequem die Werte der einzelnen Variablen beim Ausführen der Strategie sehen können.

Manuelle Einstellung von Ausfallpunkten

Wir können auf die linke Zeile des Codes klicken, um einen Punkt hinzuzufügen.

img

Klicken Sie auf "resume script execution", um das Skript wieder auszuführen, das Programm läuft bis zum nächsten Ausbruch. Wenn es keinen Ausbruch gibt oder ein Fehler im Programm eine Ausnahme auslöst, endet die Rückprüfung.

img

Es gibt noch mehrere Buttons, die Sie nutzen können: Überspringen der nächsten Funktion, gehen Sie zum nächsten Funktionsanruf, springen Sie den aktuellen Funktionsanruf aus, führen Sie einen Schritt aus, ignorieren Sie alle Unterbrechungen usw.

img

Geben Sie diesem Testcode DEBUG

img

Wenn wir weiterhin auf die Schaltfläche "Resume script execution" klicken, wird ein Ausfall des Programms erzeugt, der die Wiederholung beendet und eine Ausfallfehlermeldung druckt.

main:17:31 - TypeError: Cannot convert "undefined" to double

Dies ist ein häufiger Fehler für Neulinge, wenn man einen Struktur-Attribut-Namen nicht groß oder klein schreibt.

var id = exchange.Buy(t.buy, 0.1)  //  下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性。

导致传入exchange.Buy函数的价格是一个undefined变量,引起程序异常,回测结束。

Wenn das Programm an der Ausbruchsposition aufhört, wird diese Codezeile nicht ausgeführt. Wir klicken weiter auf die Schaltfläche "step into next function call".

img

跳转到exchange.Buy函数调用中。

img

Sie sehen, dass der Preis eine undefinierte Variable ist.

Diese Methode erleichtert die Schritt-für-Schritt-Erkennung eines Programms-BUG. Viele Anfänger machen häufig Fehler wie z.B. Array-Index-Zugriffsüberschreitungen, Referenzen zu nicht definierten Variablen, Schreibfehler bei Ausdrücken usw. So kann man das Programm leicht DEBUG machen.


Verwandt

Mehr

fmzeroDas Schlafzimmer, das geht auch, 666!