Erstmal:
Der Grund dafür ist, dass es beim Lernen von Doppel-Gleichlinien-Strategien nicht möglich ist, die Aufnahme, die Untersuchung der Standpunkte und die Programmierung des Codes intuitiv zu beobachten, und dass der Code nicht intuitiv ist, wenn er mit der Platte getestet wird. Ich möchte ein intuitives Diagramm schreiben, basierend auf einem Codebeispiel mit Z-Größe. Ich habe eine einfache Diagrammvorlage geschrieben, die jetzt sehr einfach funktioniert. Die eigene Schrift zeigt die Fertigstellung, die in einem K-Strangdiagramm angezeigt wird, usw.), beabsichtigt, langsam zu integrieren. Einfache Anwendungen: Es gibt zwei temporäre Exportfunktionen:
$.SignOP(time,price,amount,state)
$.Draw(records)
Die Funktion $.SignOP ((time, price, amount, state) ist für die Anmeldung von Anmeldungen bis zur K-Zeile und hat vier Parameter. $.Draw (records) Die Funktion wird für die Zeichnung von K-Strahlen verwendet, die zu Beginn der Hauptschleife der Strategie platziert werden müssen, wobei die Parameter in null übertragen werden können und die Funktion selbst abgerufen wird.
Hier ein Beispiel für 30 Zeilen Code mit großem Z. Der Code enthält nur drei Sätze.
function main(){
var STATE_IDLE = -1;//空闲状态
var state = STATE_IDLE;
var opAmount = 0;
var initAccount = $.GetAccount();
Log(initAccount);//输出账户初始信息
while(true){
---------------------------------------------------------------------------------------------
$.Draw(null);// 画图表K线
--------------------------------------------------------------------------------------------
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);
}
---------------------------------------------------------------------------------------------
$.SignOP((new Date()).getTime(),obj.price,obj.amount,(n > 0 ? 1 : 2) ); //标记买入 卖出 开仓
---------------------------------------------------------------------------------------------
}
}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);
---------------------------------------------------------------------------------------------
$.SignOP((new Date()).getTime(),obj.price,obj.amount,0); //标记平仓
---------------------------------------------------------------------------------------------
state = STATE_IDLE;
var nowAccount = $.GetAccount();
LogProfit(nowAccount.Balance - initAccount.Balance,"钱:",nowAccount.Balance,"币:",nowAccount.Stocks,"平仓详情:",obj,"交叉周期",n);
}
}
Sleep(Interval*1000);//暂停10秒
}
}
Der Code ist noch nicht vollkommen, willkommen mit dem Axe, vollkommen.
LeilmlDas ist gut!
Die Erfinder quantifizieren - Kleine TräumeWeiter verbessern~~ um unsere Plattform besser zu nutzen~~