Stratégie de ligne moyenne mobile simple pour les contrats à terme sur matières premières à plusieurs variétéswww.fmz.com
La bibliothèque des contrats à terme sur matières premières met en œuvre le cadre stratégique de la fonction $.CTA. Avec ce cadre stratégique, une stratégie multi-variété de stratégie de marché stable et réelle simultanée peut être réalisée en quelques dizaines de lignes.
function main() {
// using commodity futures library of the CTA strategy framework
$.CTA(Symbols, function(st) {
var r = st.records
var mp = st.position.amount
var symbol = st.symbol
/*
r is the K line, mp is the current variety position, positive number refers to long positions, negative number refers to short position, 0 means no position,
symbol refers to variety name
The return value is n:
n = 0 : Refers to close all position (regardless of the current holdings position)
n > 0 : If there are currently holding long positions, adding n long positions, if the current position is short position, then close n short positions,
if n is greater than the current holding position, then open long positions
n < 0 : If the current position is short position, adding n short positions. If the current position is long positions, then close n long positions.
If -n is greater than the current holding position, then open short position.
No return value means doing nothing
*/
if (r.length < SlowPeriod) {
return
}
var cross = _Cross(TA.EMA(r, FastPeriod), TA.EMA(r, SlowPeriod));
if (mp <= 0 && cross > ConfirmPeriod) {
Log(symbol, "up cross cycle", cross, "Current holding position", mp);
return Lots * (mp < 0 ? 2 : 1)
} else if (mp >= 0 && cross < -ConfirmPeriod) {
Log(symbol, "down cross cycle", cross, "Current holding position", mp);
return -Lots * (mp > 0 ? 2 : 1)
}
});
}
Je suis Louis.Très bien
L'inventeur de la quantification - un petit rêveC'est bon! Je ne sais pas.