Busco a alguien que escriba una estrategia de alerta de empuje, y la retroalimentación no ha empujado la señal, el disco real indica que hay un error, ¿puedes ayudarme a ver el código?

Period_list = [PERIOD_D1,126060,66060, 46060,36060,PERIOD_H1,45*60, PERIOD_M30, PERIOD_M15, PERIOD_M5, PERIOD_M1];// Lista de líneas de minutos
lastTime=0;
var malevel0 = new Array(); // define un diccionario para malevel0[symbol]=0;
function OnBar(record,symbol)
{
if (record==null)
return;
var len=record.length-1;
if(len<200)
return;
var ma200=TA.MA(record,ma_len)
var cci = talib.CCI(record, cci_len)
if(record[len].Open<ma200[len])
malevel0[symbol]=1;
var con=(malevel0[symbol]==1) && record[len].Open>ma200[len] && cci[len]>cci_value
//Log("con",malevel0[symbol]l,malevel0,record[len].Open,ma200[len],cci[len],record[len-1].Open,ma200[len-1]);
if(con)
{
malevel0[symbol]=0;
str = _D(record[record.length - 1].Time);//把 此刻的 毫秒时间 转换成 字符串(能看懂的)
Log("条件提示["+symbol+str+"]推送微信@" ); //输出一条信息 并推送微信
}
}
/*
Función de ganancia y orden
{
prices=get_last_price()
if(prices==null)
return;
Si es que no es posible, entonces no es posible. Si no es posible, entonces no es posible.
{
if( prices[0]-stop_price>profit_perentstop_price/100)
{
Log (en inglés)[0],stop_price);
ClosePosition(prices[0]);
reset();
}
Si no es así, entonces...
{
if( stop_price-prices[1] >profit_perentstop_price/100)
{
Log (en inglés)[1],stop_price);
ClosePosition(prices[1]);
reset();
}
}
}
*/
// La lógica principal de las transacciones
function OnTick(symbol)
{
//exchange.SetContractType("swap");
record = exchange.GetRecords(Period_list[period]);
if(record==null)
return;
if (record[record.length - 1].Time != lastTime) {
//Log("Nueva columna de línea K generada",symbol,record[record.length - 1].Time);
lastTime = record[record.length - 1].Time; // Debe actualizar lastTime, esto es muy importante.
OnBar ((record,symbol);// Modelo de cierre de la cotización
}
}
// Plataforma basada en el nivel de tick
function main() {
falg=1;
var contract_list=["BTC_USDT","ETH_USDT"]
for(var i=0; i<contract_list.length; i++){
malevel0[contract_list[i]]=0;
}
while (falg)
{
var symbols;
for(var i=0; i<contract_list.length; i++){
symbols=contract_list[i]
exchange.IO("currency", symbols)
OnTick(symbols);
Sleep(500)
}
}
}

