30 Zeilen Code bringen Sie in die Welt der quantitativen Investitionen.

Schriftsteller:Kleine Träume, Erstellt: 2016-04-06 10:17:26, aktualisiert: 2020-01-13 15:17:11

Eine extrem vereinfachte Mittelstreckenstrategie mit 30 Linien, um ein positives Ertragssystem zu schaffen.

Das ist richtig! Das ist richtig, es sind 30 Zeilen Code! Nur 30 Zeilen kleiner Code, ich bin es gewohnt, zuerst zu lesen und zu lesen.

Die Strategieparameter sind:

Parameter Beschreibung Typ Standardwert
FastPeriode Markteinführungszeit Zahl (number) 3
Langsamer Zeitraum Eintrittszeit langsam Zahl (number) 7
Eintritt der Periode Eintrittszeit Zahl (number) 3
AusgangFastPeriode Ausverkaufszyklus Zahl (number) 3
AusgangSlowPeriod Ausfall-Langsamkeitszyklus Zahl (number) 7
Abgang Beobachtungszeit nach dem Verkauf Zahl (number) 1
Positionsverhältnis Positionsanteil Zahl (number) 0.8
Intervall Umfragezeitraum ((Sekunden)) Zahl (number) 10

img

  • Importiert交易类库Es ist einfach, eine Strategie zu schreiben, ohne sich Gedanken darüber zu machen, ob man sie kaufen oder verkaufen soll.
  • Wenn man beim Lesen des Codes eine nicht deklarierte Variable entdeckt und verwirrt ist, geht man zur Gruppe.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • Diese Strategie hat nur eine Hauptfunktion function main (), ohne andere Funktionsmodule.
  • Ich habe die Anmerkungen zu dieser Strategie auf der QQ-Gruppe veröffentlicht, so dass Schüler, die erstmals lernen, die Anmerkungen lesen können.
  • Wenn Sie noch nicht in die offizielle QQ-Gruppe eingetreten sind, dann bitte: 309368835 Erfinder Quantitative EA-Austausch (originell BotVS) ; die Strategie ist so ein paar Dutzend Zeilen Code, so einfach!
  • Um Schüler zu unterstützen, die keine Grundlagen für JavaScript haben, haben wir hier eine einfache Syntax beschrieben, damit sie den Code nicht missverstehen.

Variablenerklärung

Mit Schlüsselwörternvar+ Variablennamen, zum Beispielvar name = “小明”

Kreislauf

while(循环条件){
    // 将会重复执行的代码
}

Wenn die Loop-Bedingung wahr ist, wird der Code innerhalb von {} wiederholt ausgeführt. Wenn die Loop-Bedingung falsch ist, springt der Loop aus.

Voraussetzungen

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

Das bedeutet, dass wenn wir diesen Code ausführen, dann ist es einfach, wenn wir diesen Code ausführen, dann ist es einfach.

Wertschätzung

Einer=Die Zahl ist eine Angabe, zum Beispiel.

name = “张三”;

Das heißt, dass man den Namen von Liu Beiang als Name verwenden kann, weil die Anerkennung leicht verwechselt wird mit der Vergleichbarkeit. Zum Beispiel:==Zwei gleichwertige Zahlen. Beispiele“张三”==“李四”Es ist klar, dass Zhang nicht Li ist.“张三”==“李四”Das ist eine falsche Botschaft.

Verknüpfte APIs

Vor der Demonstration der Strategie haben wir die API und die Template-Export-Funktion, die in der Strategie verwendet werden, behandelt.

  • $.GetAccount-Funktion: Vorlage-Export-Funktion zur Erfassung von Kontoinformationen an einer Börse
  • Log-Funktion: API, um Log-Informationen auszuführen, Zahlen anzuzeigen usw.
  • $.Cross-Funktion: Template-Export-Funktion, die für die Erkennung von Ebenlinienindikatoren verwendet wird
  • $.Buy-Funktion: Vorlage-Export-Funktion, die für die Kaufoperation verwendet wird
  • $.Sell-Funktion: Vorlage-Export-Funktion, die für den Verkauf von Operationen verwendet wird
  • LogProfit-Funktion: API, für die Ausgabe von Erträgen, die Funktion kann weitere Informationen aus dem zweiten Parameter hinzufügen
  • Die Sleep-Funktion: API, die einen Moment Pause des Programms ermöglicht und die Parametermenge ist eine Millisekunde.

Der Strategiecode verwendet auch Bibliotheksfunktionen und Objektmethoden von JavaScript.

  • Math.abs (()) Funktion: Absolute Werte der Parameter zurückgeben
  • Die Funktion toFixed (() des Numere-Objekts: Beibehalten von kleinen Ziffern nach dem Parameter Vier- und Fünf.
  • ParseFloat global: Die ParseFloat-Funktion gibt die Anzahl der Floatpunkte an.

Sie können hier mehr über JavaScript erfahren: JavaScript Number Objecthttp://www.w3school.com.cn/jsref/jsref_obj_number.aspWeiterlesen

Das Programm ist handgezeichnet, ohne Werkzeug, amateurhaft.

img

Schritt für Schritt bauen wir unsere Strategie auf.

Alle strategischen Prozesse werden an den Eingängenmain()Funktionen, d.h. Strategien, die von der Main-Funktion ausgehen.

img

img

img

img

img

Echtzeitplatte

Das ist die einfache 30-Zeilen-Strategie! Die Running! Strategie ist ausgeführt und die Operationen eingekauft.

img

Dank Inventor Quantify, der so schlanken Code zur Verfügung stellt, gibt es eine Menge Open-Source-Strategien, die man lernen kann, um sich zu verbessern und mit vielen Quantitatoren voranzukommen.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

Videounterricht unterstützt

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

Referenzen


Verwandt

Mehr

FMZ_JHIst die $.GetAccount-Funktion in der API auf exchange.GetAccount ((() aktualisiert?

Wo ist der Mann?Ich habe den Code verstanden, aber ich weiß nicht, was diese Strategie wirklich bewirkt.

:)Danke Kleine Träume, dein Artikel ist sehr gut geschrieben.

- Ich weiß nicht.Das Tutorial des Eigentümers ist sehr gut geschrieben, vielen Dank!

BincoinDanke, Herr Vermieter, ich will lernen.

Kurzfristig verkauft Wang Won seine Strategie für hohe PreiseIch bin nicht derjenige, der die Dinge so genau beschreibt.

Kleine Träume$.GetAccount ist die Exportfunktion der FMZ-Vorlage (die Vorlage ist wiederverwendbarer Code, siehe Beschreibung der Vorlage in der API-Dokumentation). $.GetAccount ist die Exportfunktion der Vorlage: https://www.fmz.com/strategy/10989. Die oben genannten Strategien sind nur ein Teil des Codes, ohne dass die Parameter festgelegt wurden. Die vollständige Strategie kann in der 30-Zeilen-Rechteck-Strategien-Suche im Strategie-Platz gesucht werden.

Wo ist der Mann?Das war es. Vielen Dank.

Kleine TräumeDas heißt, zwei gleichmäßige Linien, die auf der schnellen Linie durch eine langsame Linie gehen. Im Allgemeinen sind Kaufsignale mit einer höheren Wahrscheinlichkeit. Die langsame Linie unter der schnellen Linie ist im Allgemeinen ein Verkaufssignal mit einer höheren Wahrscheinlichkeit.

Kleine TräumeIch bin nicht sehr freundlich, aber ich werde später mehr lernen, danke für die Unterstützung!

Kleine TräumeIch möchte Ihnen danken für Ihre Unterstützung.