Les ressources ont été chargées... Je charge...

Tutoriel sur la tolérance à l'erreur dans le calcul des moyennes par exemple.

Auteur:Réalisé par TradeMan, Date: le 16 janvier 2023 09:36:42
Les étiquettes:

Partager des stratégies, des codes, des idées et des modèles en retour sur la plateforme FMZ et la communauté

Il a écrit: Les étapes de calcul des moyennes sont détaillées, avec ATR comme exemple. Comprend des détails tels que les appels d'indicateurs, les points de données inadmissibles, les données accidentelles inadmissibles. L'importance de la stratégie est de saisir les détails.

Bienvenue à la collaboration, à l'échange, à l'apprentissage et au progrès ensemble. v:haiyanyydss


var arecords = _C(exchange.GetRecords, 300);
var time = arecords[arecords.length - 1].Time
var nowtime = time;
var atremaarr = [];
var Onoff = 0;

function main() {
    while (true) {
        //这里开始    把这段放循环里   
        var Num = 50; //可以改,几根的平均值
        var records = _C(exchange.GetRecords, 300);
        var atr = TA.EMA(records, 9)
        nowtime = records[records.length - 1].Time
        if (nowtime > time || Onoff == 0) {
            atr = atr.slice(atr.length - (20 + Num));
            for (var i = 0; i < (atr.length - Num); i++) { //(atr.length-Num) 长度减掉周期 比如500根 前50根是不准的平均值 这里就取450
                var atremTEMP = 0; //计算求和的,初始设置为0
                for (var j = 0; j < Num; j++) { //求和
                    atrTEMP = atr[i + j] > 0 ? atr[i + j] : 0; //剔除意外数据 ,大于O 取值,小于O 或者其他情况取值O
                    atremTEMP += atrTEMP;
                }
                atremaarr.push(atremTEMP / Num); //把平均值P到数组
            }
            time = nowtime;
            Onoff += 1;
            Log("计算第:", Onoff, "次。");
        }
        //这里结算    把这段放循环里
        Sleep(3000)
        Log("最后一根:", _N(atremaarr[atremaarr.length - 1], 2)) //拿值
        //Log("最后第二根:", _N(atremaarr[atremaarr.length-2],2))
    }
}


Plus de