Les besoins des développeurs stratégiques
Pour les différents marchés, il est nécessaire d'utiliser des indicateurs différents. Puis-je définir des différences de prix de stop-loss en fonction des différentes conditions d'ouverture?
Par exemple, le modèle traditionnel ne fait pas de distinction entre les différentes conditions d'ouverture.
Le code ci-dessous est une simple stratégie traditionnelle pour ne pas faire de distinction entre les conditions de stockage:
MA5^^MA(C,5);
MA10^^MA(C,10);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1);
CROSS(MA5,MA10)||CROSS(K,D),BK;
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;
AUTOFILTER;
Il y a une différence avec les instructions de regroupement.
L'instruction de regroupement permet de diviser n groupes pour les conditions d'équilibrage, les positions conditionnelles d'un groupe ne peuvent être équilibrées que par les conditions d'équilibrage correspondantes d'un groupe, les conditions d'équilibrage d'un autre groupe ne sont pas signalées et ne sont pas chargées.
Par exemple:
Le premier groupe est multi-conditionnel
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
Deuxième groupe, multi-conditionnel
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K..SMA(RSV,3,1);
D..SMA(K,3,1);
CROSS(K,D),BK;
C>HV(H,10)||C<BKPRICE-5*MINPRICE,SP;
Comment distinguer les conditions de différents groupes dans le même modèle?
Tout d'abord, les modèles sont divisés en modèles filtrés et non filtrés:
Modèle de filtrage: les différentes conditions d'ouverture veulent que les différentes conditions d'équilibrage soient équilibrées, ce qui peut être réalisé à l'aide de l'instruction de regroupement.
Modèle non filtré: la stratégie d'entrée initiale est différente de la stratégie d'augmentation du risque, qui consiste à appliquer des stratégies de compensation de la perte différente, qui peut être réalisée à l'aide de l'assemblage des instructions.
Modèle de filtrage
//A组指令
A组的开多条件,BK('A');
A组的开空条件,SK('A');
A组的平多条件,SP('A');
A组的平空条件,BP('A');
//B组指令
B组的开多条件,BPK('B');
B组的开空条件,SPK('B');
B组的平多条件,SP('B');
B组的平空条件,BP('B');
AUTOFILTER;//过滤函数
Remarque: le regroupement des modèles de filtrage nécessite d'ajouter des groupes après les instructions de transaction et de les regrouper avec des quotes-clés.
Modèle non filtré
//A组指令
A组的开多条件1,BK('A',2);
A组的开空条件1,SK('A',2);
A组的加多条件2,BK('A',1);
A组的加空条件2,SK('A',1);
A组的平多条件,SP('A',GROUPBKVOL('A'));
A组的平空条件,BP('A',GROUPSKVOL('A'));
//B组指令
B组的加多条件,BK('B',1);
B组的加空条件,SK('B',1);
B组的平多条件1,SP('B',GROUPBKVOL('B'));
B组的平空条件1,BP('B',GROUPSKVOL('B'));
Remarque: les groupes des modèles non filtrés nécessitent l'ajout des groupes et des nombres de mains après les instructions de transaction, et les groupes doivent être regroupés par des guillemets.
Par exemple BK (
Modèle de filtrage: filtrage de groupe, filtrage de signal
Le filtrage de groupe signifie: si le signal de ligne K précédent est le signal d'ouverture du groupe A (BK SK BPK SPK), le signal de position actuel ne peut être que le signal d'équilibre du groupe A. Si le signal de ligne K précédent est le signal d'équilibre du groupe A (BP SP), le signal de position actuel peut être le signal d'ouverture de n'importe quel groupe.
Les conditions de mise en place non groupées ne peuvent être remplacées que par des conditions d'ouverture non groupées.
Le filtrage du signal est le filtrage du signal ouvert.
Les priorités sont les suivantes:
Les modèles non filtrés:
Nous allons voir comment ces instructions sont regroupées lors de l'écriture du code, avec quelques exemples de stratégies.
Modèle de filtrage
L'idée de trading: utiliser les 20 cycles et les 60 cycles comme critères de détermination de la tendance.
Le code:
MA20^^MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
MA20>MA60&&H>HH&&C>O,BK('A');
MA20<MA60&&L<LL&&C<O,SK('A');
L<LV(L,5)||CROSSDOWN(MA20,MA60)||C<BKPRICE-5*MINPRICE,SP('A');
H>HV(H,5)||CROSSUP(MA20,MA60)||C>SKPRICE+5*MINPRICE,BP('A');//只平A组开仓
MA20>MA60&&CROSSUP(K,D)&&C>O,BK('B');
MA20<MA60&&CROSSDOWN(K,D)&&C<O,SK('B');
C>BKPRICE+5*MINPRICE||C<BKPRICE-2*MINPRICE||C<REF(L,BARSBK),SP('B');
C<SKPRICE-5*MINPRICE||C>SKPRICE+2*MINPRICE||C>REF(H,BARSSK),BP('B');//只平B组开仓
//不同的开仓条件开仓,用不同的平仓条件,有针对性的平仓。达到不同行情试用不同策略的目的。
AUTOFILTER;
Modèle non filtré
L'idée de la transaction: une condition pour ouvrir une position pour la première fois est une fourchette dorée horizontale de 5 cycles et de 10 cycles.
Le code:
MA5^^MA(C,5);
MA10^^MA(C,10);
MA20:=MA(C,20);
MA60^^MA(C,60);
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
HH:=HV(H,10);
LL:=LV(L,10);
CROSSUP(MA5,MA10)&&BKVOL=0&&C>=O,BK('A',2);
CROSSDOWN(MA5,MA10)&&SKVOL=0&&C<=O,SK('A',2);
CROSSUP(MA5,MA60)&&ISLASTBK&&BKVOL=2,BK('A',1);
CROSSDOWN(MA5,MA60)&&ISLASTSK&&SKVOL=2,SK('A',1);
MA5>MA60&&H>HH&&ISLASTSP&&REF(GROUPBKVOL('A'),BARSSP+1)>0,BK('B',1);
MA5<MA60&&L<LL&&ISLASTBP&&REF(GROUPSKVOL('A'),BARSBP+1)>0,SK('B',1);
L<LV(L,5)||C<REF(L,BARSBK)&&(C<BKPRICE-2*MINPRICE),SP('A',GROUPBKVOL('A'));
H>HV(H,5)||C>REF(H,BARSSK)&&(C>SKPRICE+2*MINPRICE),BP('A',GROUPSKVOL('A'));
C>BKPRICE+10*MINPRICE||CROSSDOWN(MA5,MA60),SP('B',BKVOL);
C<SKPRICE-10*MINPRICE||CROSS(MA5,MA60),BP('B',SKVOL);
Ce qui précède est une analyse de cas concrets de ces deux types de modèles, qui permettent au lecteur de voir comment My Language traite les instructions de regroupement. Chacun peut élaborer des exigences de regroupement différentes en fonction de sa propre logique stratégique, afin de s'efforcer d'exprimer la logique stratégique souhaitée dans le code de la manière la plus claire et la moins erronée possible.