Die Bedürfnisse von Strategieentwicklern
Kann ich eine unterschiedliche Stop-Loss-Differenz für verschiedene Aufnahmebedingungen festlegen?
So werden beispielsweise in einem herkömmlichen Modell keine Unterschiede zwischen den verschiedenen Aufnahmebedingungen gemacht.
Der folgende Code ist eine einfache Strategie zur traditionellen, nicht differenzierten Eröffnung von Positionsbedingungen:
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;
Das ist eine andere Art von Gruppen-Instruktion.
Die Gruppenanweisung kann für die Ausgleichsbedingungen in n Gruppen unterteilt werden, wobei die geöffneten Positionen einer Gruppe nur für die Ausgleichsbedingungen der entsprechenden Gruppe ausgeglichen werden können. Die Ausgleichsbedingungen der anderen Gruppen werden nicht signalisiert oder beauftragt.
Zum Beispiel:
Die erste Gruppe hat mehrere Bedingungen.
MA5^^MA(C,5);
MA10^^MA(C,10);
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;
Die zweite Gruppe hat mehrere Bedingungen.
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;
Wie unterscheiden wir verschiedene Gruppen von Bedingungen in einem Modell?
Zunächst werden die Modelle in Filter- und Nicht-Filter-Modelle unterteilt:
Filtermodell: Verschiedene Anlagebedingungen, um mit unterschiedlichen Ausgleichsbedingungen auszugleichen, kann mit der Gruppenbildung von Anweisungen umgesetzt werden.
Unfiltermodell: Die Erst-Eintritts-Strategie unterscheidet sich von der Aufnahme-Strategie. Die Ausgleichs-Strategie wird durch eine andere Stop-Loss-Strategie ersetzt, die mit der Anweisungsgruppierung umgesetzt werden kann.
Filtermodell
//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;//过滤函数
Anmerkung: Die Gruppierung des Filtermodells ist erforderlich, um die Gruppe nach dem Handelsbefehl zu verbinden und mit einem Einzigezeichen zu umfassen. Wie BK ((‘A’)
Nicht-Filtermodell
//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'));
Anmerkung: Die Gruppe der nicht-filternden Modelle muss nach dem Handelsbefehl mit einer Gruppe und einer Handnummer versehen werden. Die Gruppe muss mit einem einzigen Komma umschrieben werden. Wie BK ((‘A’,2)
Filtermodell: Zunächst Gruppefilter, dann Signalfilter
Eine Gruppefilterung bedeutet: Wenn das vorherige K-Linie-Signal ein Open-Position-Signal aus Gruppe A ist ((BK SK BPK SPK), kann das aktuelle K-Line-Signal nur ein Open-Position-Signal aus Gruppe A sein. Wenn das vorherige K-Linie-Signal ein Open-Position-Signal aus Gruppe A ist ((BP SP), kann das aktuelle K-Line-Signal ein Open-Position-Signal aus einer beliebigen Gruppe sein.
Ungruppierte Stillstandsbedingungen können nur ungruppierte Aufnahmebedingungen sein
Signalfilterung bezeichnet die Filterung eines ausgeglichenen Signals.
Die Prioritäten sind:
Nicht gefilterte Modelle:
Anmerkung: Nicht-gruppierte Stillstandsbedingungen sind nur für nicht-gruppierte Aufnahmebedingungen gültig.
Als Nächstes werden wir einige Beispiele für Strategien anzeigen, um zu sehen, wie man diese Anweisungen beim Codieren zusammenfasst.
Filtermodell
Handelsideologie: Die Trendkriterien sind 20 und 60 Zyklen.
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;
Nicht-Filtermodell
Handelsmethode: Die erste Position wird mit einem 5- und 10-Zyklus-Linien-Dot-Fork als Bedingung für die Eröffnung der Position genommen.
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);
Das ist eine konkrete Fallanalyse für diese beiden Arten von Modellen, aus der der Leser sehen kann, wie die My-Sprache die Gruppierungsanweisungen handhabt. Sie können verschiedene Gruppierungsanforderungen nach ihrer eigenen Strategie-Logik erstellen, um die gewünschte Strategie-Logik in der Code möglichst klar und mit den geringsten Fehlern darzustellen.