En primer lugar:
Esto se debe a que cuando se aprende la estrategia de doble línea recta, no se puede observar de manera intuitiva el estudio de las posiciones abiertas, los puntos de equilibrio y la redacción del código, y el código no es intuitivo cuando se prueba con el disco. Quería escribir un gráfico de visualización intuitiva, basado en el ejemplo de código de tamaño Z, escribió una plantilla de gráfico simple, ahora la función es muy simple, solo muestra K líneas en tiempo real, muestra posiciones abiertas, puntos de liquidación. Los indicadores escritos por mí mismos muestran la línea completa, se muestran en el diagrama de K, etc.), con la intención de unirse lentamente. El uso sencillo: Hay dos funciones de exportación temporal:
$.SignOP(time,price,amount,state)
$.Draw(records)
La función $.SignOP ((time, price, amount, state) se usa inmediatamente después de la apertura de la posición de liquidación para marcar la posición de liquidación de la posición de apertura a la línea K. Tiene 4 parámetros. La función $.Draw (records) se utiliza para dibujar K líneas, la función debe colocarse al principio del ciclo principal de la política, los parámetros pueden ser enviados a null, dejando que la función se obtenga.
A continuación se muestra un ejemplo de 30 líneas de código con Z como tamaño, para acceder al código con esta plantilla. En el código sólo hay tres frases incluidas.
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秒
}
}
El código aún no está muy perfecto, bienvenido el gran dios hacha, perfecto.
- ¿ Qué?¡Qué bueno!
Los inventores cuantifican - sueños pequeñosContinuemos mejorando~~ para que nuestra plataforma sea más útil~~