Stratégie de 30 lignes pour créer un système de gains positifs
C'est vrai ! Vous avez bien entendu, c'est 30 lignes de code ! J'ai l'habitude d'écrire 30 lignes de code et de regarder le code en entier pour avoir une vue d'ensemble !
Les paramètres de la stratégie sont les suivants:
| paramètre | décrire | taper | Par défaut |
|---|---|---|---|
| FastPeriod | Cycle de mise sur le marché | Type de chiffre | 3 |
| SlowPeriod | Cycle d'entrée sur le marché | Type de chiffre | 7 |
| EnterPeriod | Période d'observation | Type de chiffre | 3 |
| ExitFastPeriod | Cycle de ligne rapide hors de la ville | Type de chiffre | 3 |
| ExitSlowPeriod | Cycle de délocalisation | Type de chiffre | 7 |
| ExitPeriod | Période d'observation | Type de chiffre | 1 |
| PositionRatio | Pourcentage de positions | Type de chiffre | 0.8 |
| Interval | Cycle de sondage (s) | Type de chiffre | 10 |
- Il a été importé.
交易类库C'est facile de faire des stratégies sans avoir à faire des listes pour savoir si on va acheter ou vendre. - Si vous êtes confus en lisant le code et que vous trouvez des variables non déclarées, répondez en groupe.
function main() {
var STATE_IDLE = -1;
var state = STATE_IDLE;
var opAmount = 0;
var initAccount = $.GetAccount();
Log(initAccount);
while (true) {
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);
}
}
} 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);
state = STATE_IDLE;
var nowAccount = $.GetAccount();
LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
}
}
Sleep(Interval*1000);
}
}
- Cette stratégie n'a qu'une seule fonction principale main () et aucun autre module de la fonction. Il n'y a qu'une seule boucle dans la fonction principale.
- J'ai publié une version annotée du code de cette stratégie dans le groupe QQ, et les étudiants débutants peuvent voir les annotations pour faciliter leur apprentissage.
- Il n'y a pas de groupe officiel de QQ ici, veuillez vous joindre: 309368835 Inventeur de Quantitative EA Communication (original BotVS). La stratégie est simple: quelques dizaines de lignes de code !
- Pour les étudiants qui n'ont pas de base en JavaScript, nous allons vous expliquer la grammaire pour éviter qu'ils ne comprennent pas le code.
Déclaration de la variable
En utilisant des mots clésvar+ Nom de la variable, par exemplevar name = “小明”
Le cycle
while(循环条件){
// 将会重复执行的代码
}
Si la condition de cycle est vraie, le code est exécuté de manière répétée dans {}. Si la condition de cycle est fausse, le code sort du cycle.
Branche conditionnelle
if (判断条件){
// 执行代码
} else {
// 执行代码
}
C'est très simple, la traduction est si (true) (exécuter ce code) et si (exécuter ce code)
Attribuer une valeur
Une seule.=Le nombre est une attribution, par exemple.
name = “张三”;
C'est en donnant un nom à un nom que l'on confond une valeur avec une équivalence.
C'est une comparaison==Deux chiffres égaux.
Des exemples“张三”==“李四”Il est clair que Zhang Tsé n'est pas Li Qi.“张三”==“李四”Pourquoi ?
API liée
Avant de démontrer et d'écrire une stratégie, nous avons examiné les API et les fonctions d'exportation de modèles utilisés dans la stratégie. La documentation de l'API et le code source du modèle sont détaillés dans le document Inventor Quantum.
- Fonction $.GetAccount: une fonction d'exportation de modèle utilisée pour obtenir des informations sur les comptes d'échanges
- Fonction log: API, utilisée pour exporter des informations vers le journal, afficher des valeurs, etc.
- $.Cross: Fonction d'exportation du modèle pour détecter le croisement des indicateurs de la ligne moyenne
- Fonction $.Buy: fonction d'exportation du modèle pour les opérations d'achat
- Fonction $.Sell: une fonction d'exportation de modèle utilisée pour les opérations de vente
- Fonction LogProfit: API, utilisée pour la sortie des bénéfices, la fonction peut ajouter d'autres informations à partir du deuxième paramètre
- La fonction Sleep: API, qui permet à un programme de s'arrêter pendant un certain temps, est unité de paramètre en millisecondes.
Le code de la stratégie utilise également les fonctions de bibliothèque et les méthodes d'objets de Javascript.
- Math.abs() fonction: renvoie la valeur absolue du paramètre
- La fonction toFixed () de l'objet Number: conserve les nombres décimaux par paramètre. Notez que la fonction renvoie une chaîne de caractères
- parseFloat fonction globale: renvoie le nombre de floats des arguments de chaîne de caractères.
Vous trouverez plus d'informations à ce sujet sur le site JavaScript Number Objects http://www.w3school.com.cn/jsref/jsref_obj_number.asp
Le schéma du programme est dessiné à la main sans utiliser d'outils, c'est très amateur.
Notre stratégie, pas à pas
Toutes les entrées des programmes de stratégie sont des entrées de type "c'est une erreur".main()La fonction, c'est-à-dire la stratégie, est exécutée en commençant par la fonction main.
Offre ferme
Nous avons déployé le code sur un robot hôte, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données.
La stratégie de Running! est en cours d'exécution.
Merci à InventorQuantum pour ce code simple, il y a beaucoup de stratégies open source sur InventorQuantum que vous pouvez apprendre et améliorer, et progresser avec beaucoup d'experts en quantification.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
Accompagnement par des vidéos
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
À lire
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








