金字塔决策交易系统

用户名  找回密码
 

微信登录

微信扫一扫,快速登录

帖子
查看: 2077|回复: 8

多头策略 DD-link / 空头策略 KK-link 时间网格

[复制链接]

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
发表于 2025-2-3 08:35 | 显示全部楼层 |阅读模式
本帖最后由 技术006 于 2025-2-3 09:47 编辑

多头策略 DD-link / 空头策略 KK-link 时间网格
[PEL] 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
//+++++++++++++++++++++KK_LINK++++++++++++++++
//WARNING_DISABLE:9;
{===========================================================================================}
INPUT:T0(3,2,240,1),BMIN(1,1,100,1),BMAX(40,1,100,1);
HOLDING0:=IF(HOLDING<>DAYHOLDING,DAYHOLDING,HOLDING);
AVGENTERPRICE0:=IF(AVGENTERPRICE<>AVGENTERPRICE,AVGENTERPRICE,AVGENTERPRICE);
{===========================================================================================}
{1
TR0:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR0:MA(TR0,14),NOAXIS;//,LINETHICK0;
 
TR1:=MAX(MAX((REF(HIGH,1)-REF(LOW,1)),ABS(REF(CLOSE,2)-REF(HIGH,1))),ABS(REF(CLOSE,2)-REF(LOW,1))),NOAXIS;//,LINETHICK0;
ATR1:MA(TR1,14),NOAXIS;//,LINETHICK0;
{===========================================================================================}
 
OPEND:="$OPEN#DAY";
CLOSED:="$CLOSE#DAY";
HIGHD:="$HIGH#DAY";
LOWD:="$LOW#DAY";
VOLD:="$VOL#DAY";
 
BZJ0:=ROUND( ( REF(CLOSED,0) * MULTIPLIER * (TACCOUNT(41)+TACCOUNT(42))/2 ) ),NOAXIS,LINETHICK0;
FY0:=OPENPROFIT,NOAXIS;//,LINETHICK0;
 
0:BZJ0,NOAXIS,LINETHICK0;
0:FY0,NOAXIS,LINETHICK0;
 
ZCK0:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMIN/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
ZCK1:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMAX/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
基:ZCK0,NOAXIS,LINETHICK0;
极:ZCK1,NOAXIS,LINETHICK0;
 
//ZCB0:=( (CASH(0)+CASH(1))/2 )/(ASSET),NOAXIS,LINETHICK0;
//比:ZCB0,NOAXIS,LINETHICK0;
 
JYF0:=GEGCHARGE('',REF(CLOSED,0),1,0)*2,NOAXIS,LINETHICK0;
费:JYF0,NOAXIS,LINETHICK0;
 
MMC0:=( (DYNAINFO(34)-DYNAINFO(28)) )*MULTIPLIER,NOAXIS,LINETHICK0;
差:MMC0,NOAXIS,LINETHICK0;
 
//ZXBD:=DYNAINFO(208)*MULTIPLIER,NOAXIS,LINETHICK0;
//XS:( IF(JYF>=MMC,JYF,MMC)-IF(MMC>=JYF,JYF,MMC) )/IF(JYF>=MMC,JYF,MMC),NOAXIS,LINETHICK0;
//DC:(1+ROUND(IF(XS<=1,1,XS)))*( (DYNAINFO(34)-DYNAINFO(28)) ),NOAXIS,LINETHICK0;
{===========================================================================================}
仓:HOLDING0,NOAXIS,LINETHICK0;
资:ASSET,NOAXIS,LINETHICK0;
金:CASH(0),NOAXIS,LINETHICK0;
净:NETPROFIT,NOAXIS,COLORYELLOW,LINETHICK0;
浮:OPENPROFIT,NOAXIS,LINETHICK0;
幅:OPENPROFITPER,NOAXIS,LINETHICK0;
撤:MAXDRAWDOWN,NOAXIS,LINETHICK0;
0:MAXDRAWDOWNPCT,NOAXIS,LINETHICK0;
亏:GROSSLOSS,NOAXIS,LINETHICK0;
盈:BESTTRADE,NOAXIS,LINETHICK0;
回:ANNUALRETURNRATER,NOAXIS,LINETHICK0;
年:ANNUALRETURNRATE,NOAXIS,LINETHICK0;
风:=PROFITRISKRATIO,NOAXIS,LINETHICK0;
次:=TOTALDAYTRADE,NOAXIS,LINETHICK0;
{=================================================================}
HMIN:=ZCK0;
HMAX:=ZCK1;
H1:=HMIN;
H2:=H1*2;
H3:=H1*3;
{==============================================================================}
{==========================================================================================}
ZQ1:=IF(DATATYPE=1,1,0);
ZQ3:=IF(DATATYPE=17,3,0);
ZQ5:=IF(DATATYPE=2,5,0);
ZQ10:=IF(DATATYPE=18,10,0);
ZQ15:=IF(DATATYPE=3,15,0);
ZQ30:=IF(DATATYPE=4,30,0);
ZQ60:=IF(DATATYPE=5,60,0);
ZQF:=IF(DATATYPE=13,DATATYPEMORE(2),0);
ZQH:=IF(DATATYPE=11,DATATYPEMORE(1)*60,0);
ZQ:=ZQ1+ZQ3+ZQ5+ZQ10+ZQ15+ZQ30+ZQ60+ZQF+ZQH,NOAXIS;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1,NOAXIS;
JY:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS;
TK:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-10*100,NOAXIS;
TS:=TIME>=CLOSETIME(0)-10*100,NOAXIS;
F:="ZQ";
OPENMIN1:="$OPEN#MINF";
OPENDAY:="$OPEN#DAY";
OPENSTART:=IF(OPENMIN1=OPENDAY,1,0);
OST:=FILTER(OPENSTART,CYC);
KPJY:= OST>=1 AND TK>=1 AND JY=1 AND CYC>=1;
SPJY:= TS=1;
{====================================================================================================}
//SELL(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//BUY(KPJY,1,THISCLOSE);{OPEN}
//收盘:SELLSHORT(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//开盘:BUYSHORT(KPJY,HMIN,THISCLOSE);{OPEN}
{============================================================================================}
//INPUT:N(1,1,240,1);
D:=T0;//RAND(9)+5,NOAXIS,LINETHICK0;
隔:D,NOAXIS,LINETHICK0;
D1:=IF(D<=2,2,D),NOAXIS,LINETHICK0;
D2:=RET(OPENMINUTES(CURRENTTIME),1),NOAXIS,LINETHICK0;
D3:=RET(OPENMINUTES(TIME),1),NOAXIS,LINETHICK0;
日:D2,NOAXIS,LINETHICK0;
分:D3,NOAXIS,LINETHICK0;
{===================================================================================}
X0:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS,LINETHICK0;
X1:=REF(X0,1),NOAXIS,LINETHICK0;
{==================================================================================}
A1:=OPENMINUTES(TIME)/D,NOAXIS,LINETHICK0;
A2:=INTPART(A1),NOAXIS,LINETHICK0;
A3:=FRACPART(A1),NOAXIS,LINETHICK0;
A4:=(A2/A3),NOAXIS,LINETHICK0;
A5:=(A2-D),NOAXIS,LINETHICK0;
A6:=IF((A4-A5)=D,1,0),NOAXIS,LINETHICK0;
{====================================================================================}
BSELL:=IF(AVGENTERPRICE0=0,OPEN,AVGENTERPRICE0)-OPEN,NOAXIS;
本 :BSELL,COLORBLUE,NOAXIS;//,LINETHICK0;
0:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE),COLORRED;//,NOAXIS;//,LINETHICK0;
B0:=1*(DYNAINFO(34)-DYNAINFO(28)),NOAXIS,LINETHICK0;
B1:=IF(B0<=0,MINDIFF,B0),NOAXIS,LINETHICK0;
小:B1,NOAXIS,LINETHICK0;
{=====================================================================================}
{
FY1:FY0/BZJ0/1,NOAXIS;//,LINETHICK0;
FY2:FY0/BZJ0/2,NOAXIS;//,LINETHICK0;
FY3:FY0/BZJ0/3,NOAXIS;//,LINETHICK0;
FY4:FY0/BZJ0/4,NOAXIS;//,LINETHICK0;
FY5:FY0/BZJ0/5,NOAXIS;//,LINETHICK0;
FY6:FY0/BZJ0/6,NOAXIS;//,LINETHICK0;
// FILTER((FY0>BZJ0),ENTERBARS)
 
{==============================================================================}
 
KPK:=01 AND (BSELL>B1*7) AND X1;
控平空:SELLSHORT(KPK,(HOLDING0/H3),THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
//开盘:BUYSHORT( HOLDING0=0 AND (D2+D3)=D2+2,H1,THISCLOSE),NOAXIS,LINETHICK0;
随机开空:BUYSHORT( HOLDING0=0 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
控加空0:BUYSHORT(-01>HOLDING0>-02 AND (BSELL+B1*05)<-B1*07 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空1:BUYSHORT(-02>HOLDING0>-03 AND (BSELL+B1*07)<-B1*11 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空2:BUYSHORT(-03>HOLDING0>-05 AND (BSELL+B1*11)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空3:BUYSHORT(-05>HOLDING0>-07 AND (BSELL+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空4:BUYSHORT(-07>HOLDING0>-11 AND (BSELL+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空5:BUYSHORT(-11>HOLDING0>-13 AND (BSELL+B1*19)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空6:BUYSHORT(-13>HOLDING0>-17 AND (BSELL+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空7:BUYSHORT(-17>HOLDING0>-19 AND (BSELL+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空8:BUYSHORT(-19>HOLDING0>-23 AND (BSELL+B1*19)<-B1*23 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空9:BUYSHORT(-23>HOLDING0>-29 AND (BSELL+B1*23)<-B1*29 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
{
JK:=#DD-LINK.KPD()#;
加空0:BUYSHORT(JK=1 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
{
控平空0:SELLSHORT(IF( HOLDING0<-HMAX/3,1,0) AND FILTER((BSELL>B1*0),ENTERBARS) AND X1,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;
控平空1:SELLSHORT(IF( HOLDING0<-HMAX,2,0) AND FILTER((BSELL>B1*0),ENTERBARS) AND X1,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;
 
{=========================================================================================}
 
//开盘0:BUYSHORT( HOLDING0=0 AND (D2+D3)=D2+1,H1,THISCLOSE),NOAXIS,LINETHICK0;
//收盘清仓0:SELLSHORT((D2-D3)=1 ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;
 
//收盘清仓:SELLSHORT(SPJY ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;
 
{==============================================================================}
 
 
 
 
 
 
 
 
 
{============================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,MARKETR),NOAXIS,LINETHICK0;
{=============================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
{=============================================================================}



补充内容 (2025-2-3 18:00):

//+++++++++++++++++++DD-LINK+++++++++++++++++++++++++++

//WARNING_DISABLE:9;
{===========================================================================================}
INPUT:T0(3,2,240,1),BMIN(1,1,100,1),BMAX(40,1,100,1);
HOLDING0:=IF(HOLDING<>DAYHOLDING,DAYHOLDING,HOLDING);
AVGENTERPRICE0:=IF(AVGENTERPRICE<>AVGENTERPRICE,AVGENTERPRICE,AVGENTERPRICE);
{===========================================================================================}
{
TR0:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR0:MA(TR0,14),NOAXIS;//,LINETHICK0;

TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR1:REF(MA(TR1,14),1),NOAXIS;//,LINETHICK0;
{===========================================================================================}
OPEND:="$OPEN#DAY";
CLOSED:="$CLOSE#DAY";
HIGHD:="$HIGH#DAY";
LOWD:="$LOW#DAY";
VOLD:="$VOL#DAY";

BZJ0:=ROUND( ( REF(CLOSED,0) * MULTIPLIER * (TACCOUNT(41)+TACCOUNT(42))/2 ) ),NOAXIS,LINETHICK0;
FY0:=OPENPROFIT,NOAXIS;//,LINETHICK0;
保0:BZJ0,NOAXIS,LINETHICK0;
浮0:FY0,NOAXIS,LINETHICK0;

ZCK0:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMIN/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
ZCK1:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMAX/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
基:ZCK0,NOAXIS,LINETHICK0;
极:ZCK1,NOAXIS,LINETHICK0;

ZCB0:=( (CASH(0)+CASH(1))/2 )/(ASSET),NOAXIS,LINETHICK0;
比:=ZCB0,NOAXIS,LINETHICK0;

JYF0:=GEGCHARGE('',REF(CLOSED,0),1,0)*2,NOAXIS,LINETHICK0;
费:JYF0,NOAXIS,LINETHICK0;

MMC0:=( (DYNAINFO(34)-DYNAINFO(28)) )*MULTIPLIER,NOAXIS,LINETHICK0;
差:MMC0,NOAXIS,LINETHICK0;

ZXBD:=DYNAINFO(208)*MULTIPLIER,NOAXIS,LINETHICK0;
//XS:( IF(JYF>=MMC,JYF,MMC)-IF(MMC>=JYF,JYF,MMC) )/IF(JYF>=MMC,JYF,MMC),NOAXIS,LINETHICK0;
//DC:(1+ROUND(IF(XS<=1,1,XS)))*( (DYNAINFO(34)-DYNAINFO(28)) ),NOAXIS,LINETHICK0;

{===========================================================================================}
仓:HOLDING0,NOAXIS,LINETHICK0;
资:ASSET,NOAXIS,LINETHICK1;
金:CASH(0),NOAXIS,LINETHICK0;
净:NETPROFIT,NOAXIS,COLORYELLOW,LINETHICK0;
浮:OPENPROFIT,NOAXIS,LINETHICK0;
幅:OPENPROFITPER,NOAXIS,LINETHICK0;
撤:MAXDRAWDOWN,NOAXIS,LINETHICK0;
幅0:MAXDRAWDOWNPCT,NOAXIS,LINETHICK0;
亏:GROSSLOSS,NOAXIS,LINETHICK0;
盈:BESTTRADE,NOAXIS,LINETHICK0;
回:ANNUALRETURNRATER,NOAXIS,LINETHICK0;
年:ANNUALRETURNRATE,NOAXIS,LINETHICK0;
风:=PROFITRISKRATIO,NOAXIS,LINETHICK0;
次:=TOTALDAYTRADE,NOAXIS,LINETHICK0;
{++++++++++++++++++++++++++++++++++}
HMIN:=ZCK0;
HMAX:=ZCK1;
H1:=HMIN;
H2:=H1*2;
H3:=H1*3;
{=============================================================================}
ZQ1:=IF(DATATYPE=1,1,0);
ZQ3:=IF(DATATYPE=17,3,0);
ZQ5:=IF(DATATYPE=2,5,0);
ZQ10:=IF(DATATYPE=18,10,0);
ZQ15:=IF(DATATYPE=3,15,0);
ZQ30:=IF(DATATYPE=4,30,0);
ZQ60:=IF(DATATYPE=5,60,0);
ZQF:=IF(DATATYPE=13,DATATYPEMORE(2),0);
ZQH:=IF(DATATYPE=11,DATATYPEMORE(1)*60,0);
ZQ:=ZQ1+ZQ3+ZQ5+ZQ10+ZQ15+ZQ30+ZQ60+ZQF+ZQH,NOAXIS;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1,NOAXIS;
JY:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS;
TK:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-10*100,NOAXIS;
TS:=TIME>=CLOSETIME(0)-10*100,NOAXIS;
F:="ZQ";
OPENMIN1:="$OPEN#MINF";
OPENDAY:="$OPEN#DAY";
OPENSTART:=IF(OPENMIN1=OPENDAY,1,0);
OST:=FILTER(OPENSTART,CYC);
KPJY:=HOLDING0=0 AND OST>=1 AND TK>=1 AND JY=1 AND CYC>=1;
SPJY:= TS=1;
{====================================================================================================}
//收盘:SELL(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//开盘:BUY(KPJY,HMIN,THISCLOSE);{OPEN}
//SELLSHORT(SPJY,DAYHOLDING,THISCLOSE);{CLOSE}
//BUYSHORT(KPJY,1,THISCLOSE);{OPEN}
{============================================================================================}
//INPUT:N(1,1,100,1);
D:=T0;//10;//RAND(9)+5,NOAXIS,LINETHICK0;
隔:=D,NOAXIS,LINETHICK0;
D1:=IF(D<=2,2,D),NOAXIS,LINETHICK0;
D2:=RET(OPENMINUTES(CURRENTTIME),1),NOAXIS,LINETHICK0;
D3:=RET(OPENMINUTES(TIME),1),NOAXIS,LINETHICK0;
日:=D2,NOAXIS;//,LINETHICK0;
分:=D3,NOAXIS;//,LINETHICK0;
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
X0:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS,LINETHICK0;
X1:=REF(X0,1),NOAXIS,LINETHICK0;
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
A1:=OPENMINUTES(TIME)/D,NOAXIS,LINETHICK0;
A2:=INTPART(A1),NOAXIS,LINETHICK0;
A3:=FRACPART(A1),NOAXIS,LINETHICK0;
A4:=(A2/A3),NOAXIS,LINETHICK0;
A5:=(A2-D),NOAXIS,LINETHICK0;
A6:=IF((A4-A5)=D,1,0),NOAXIS,LINETHICK0;
{===========================================================================+}
BBUY:=OPEN-IF(AVGENTERPRICE0=0,OPEN,AVGENTERPRICE0),NOAXIS;
本 :=BBUY,NOAXIS,COLORBLUE;//,LINETHICK0;
本0:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE),COLORRED;//,NOAXIS;//,LINETHICK0;
{============================================================}
B0:=1*(DYNAINFO(34)-DYNAINFO(28)),NOAXIS,LINETHICK0;
B1:=IF(B0<=0,MINDIFF,B0),NOAXIS,LINETHICK0;
差:=B1,NOAXIS;//,LINETHICK0;

{++++++++++++++++++++++++++++++++++++++}
{
FY1:FY0/BZJ0/1,NOAXIS;//,LINETHICK0;
FY2:FY0/BZJ0/2,NOAXIS;//,LINETHICK0;
FY3:FY0/BZJ0/3,NOAXIS;//,LINETHICK0;
FY4:FY0/BZJ0/4,NOAXIS;//,LINETHICK0;
FY5:FY0/BZJ0/5,NOAXIS;//,LINETHICK0;
FY6:FY0/BZJ0/6,NOAXIS;//,LINETHICK0;
//   FILTER((FY0>BZJ0),ENTERBARS)

{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

KPD:=01 AND BBUY>B1*7 AND X1;
控平多:SELL(KPD ,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;
//控平多:SELL( HOLDING0>0 AND FY0>=BZJ0 AND X1,(HOLDING0)/H3,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
//开盘:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
随机开多:BUY(  HOLDING0=0 AND X1 AND A6,BMIN,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
控加多0:BUY(01<HOLDING0<02 AND (BBUY+B1*05)<-B1*07 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多1:BUY(02<HOLDING0<03 AND (BBUY+B1*07)<-B1*11 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多2:BUY(03<HOLDING0<05 AND (BBUY+B1*11)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多3:BUY(05<HOLDING0<07 AND (BBUY+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多4:BUY(07<HOLDING0<11 AND (BBUY+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多5:BUY(11<HOLDING0<13 AND (BBUY+B1*19)<-B1*23 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多6:BUY(13<HOLDING0<17 AND (BBUY+B1*23)<-B1*29 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多7:BUY(17<HOLDING0<19 AND (BBUY+B1*29)<-B1*31 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多8:BUY(19<HOLDING0<23 AND (BBUY+B1*31)<-B1*37 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多9:BUY(23<HOLDING0<29 AND (BBUY+B1*37)<-B1*41 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
{
JD:=#KK-LINK.KPK(1)#;
加多0:BUY(JD=1 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
{
控平多0:SELL(IF( HOLDING0>HMAX/3,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;
控平多1:SELL(IF( HOLDING0>HMAX/2,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;
//控平多3:SELL(IF( HOLDING0>HMAX/1,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;

{=============================================================================}


{===============================================================================}
//开盘0:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓0:SELL( (D2-D3)=1 ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;

//收盘清仓:SELL( SPJY ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;
{======================================================================================}











{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,MARKETR),NOAXIS,LINETHICK0;
{============================================================================}

{===========================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
{============================================================================}


//DATAPERIAD
//BUY(X1 AND OPENMINUTES(TIME)=0,1,THISCLOSE);
{
//SELL(X AND ENTERBARS=2,0,THISCLOSE),NOAXIS,LINETHICK0;
//固定止损部分************************

//止盈
IF OPEN-AVGENTERPRICE>100*MINDIFF THEN BEGIN
SELL(1,HOLDING,THISCLOSE);
END

//止损
IF AVGENTERPRICE-OPEN>10*MINDIFF THEN BEGIN
SELL(1,HOLDING,THISCLOSE);
END
//BUYSHORT(A6,1,THISCLOSE),NOAXIS,LINETHICK0;
//SELLSHORT(ENTERBARS=9,0,THISCLOSE),NOAXIS,LINETHICK0;
}

//A:(TIMETOT0(DYNAINFO(207)+D)-REF(TIME0,1)),NOAXIS,LINETHICK0;

//CD1:(HOLDING=0) OR ENTERBARS=5,NOAXIS,LINETHICK0;
//CD2:(HOLDING=0) OR EXITBARS=5,NOAXIS,LINETHICK0;

//BUY(CD1,1,THISCLOSE);
//SELL(CD2,1,THISCLOSE);
//BUYSHORT(CD,1,MARKET);

//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
//DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=0.01;
//KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AVGENTERPRICE>=0.01;
//SELL(DTYDZS,0,THISCLOSE);
//SELLSHORT(KTYDZS,0,THISCLOSE);

//PJ:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE)-OPEN,NOAXIS;
//PJ:AVGENTERPRICE,NOAXIS;

{
KD:=;          //开多条件
PD:=;          //平多条件
KK:=;          //开空条件
PK:=;          //平空条件


平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
平多:SELL(PD,1,THISCLOSE);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号

}
{
信号语句排列规则——先平后开
“费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:

持仓:HOLDING,LINETHICK0;
资产:ASSET,NOAXIS;
可用现金:CASH(0),LINETHICK0;

您可以在查看菜单->交易系统模板 中设置自己需要的模板
}
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:24 | 显示全部楼层


这是一个使用EasyLanguage编写的交易策略代码片段。该策略涉及多个方面,包括开仓、平仓、加仓等操作,并且包含了一些自定义的指标和条件判断。以下是对这段代码的简要分析:

1. **变量和指标**:
   - `KP` 和 `KD` 可能是自定义的指标或函数,用于判断市场趋势或过滤信号。
   - `B1` 可能是一个布尔变量,用于在特定条件下触发交易操作。

2. **开仓和平仓**:
   - **开盘全平**:在特定的时间点(由 `D2 + D3 = D2 + 1` 决定)平掉所有头寸。
   - **开多**:当满足条件 `X1 AND A6` 时,开一个长仓。
   - **加多**:如果市场处于特定状态(由 `B1 < 0 AND A6` 决定),则增加持仓量。
   - **控平多**:当 `B1 >= 5` 时,平掉一半的头寸。

3. **时间条件**:
   - 使用了 `D2` 和 `D3` 来判断特定的时间点,例如开盘或收盘时触发操作。

4. **其他功能**:
   - 包含了一些注释掉的代码片段,这可能意味着策略在开发过程中进行了多次调整。
   - 使用了 `ORDERQUEUE` 参数来控制订单队列的执行方式。

### 建议和注意事项

1. **回测和验证**:确保该策略在历史数据上进行过充分的回测,并且表现稳定。
2. **风险管理**:检查是否有适当的止损和止盈机制,以控制潜在的亏损。
3. **优化参数**:某些参数(如 `B1 >= 5`)可能需要根据不同的市场条件进行调整。
4. **代码简洁性**:由于代码中包含了大量注释掉的部分,建议清理代码以提高可读性和维护性。

如果您有任何具体问题或需要进一步的解释,请随时提问!
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:36 | 显示全部楼层
<think>
嗯,我看到用户上传了一个EasyLanguage代码片段,看起来像是期货或者股票的自动交易策略。里面有很多注释和不同的部分,比如开仓、平仓、止损、移动止损等等。

首先,我应该理解这段代码的大致结构。开始的时候,有一些变量定义,比如KD、PD、KK、PK,这可能分别代表开多、平多、开空、平空的条件。然后有一些信号语句,按照“先平后开”的顺序排列,这样可以避免同时开仓和平仓导致的问题。

接下来,我注意到代码中有很多注释部分,有些是关于固定止损和移动止损的。比如,止盈条件如果开仓价与平均入场价格的差异超过一定范围,就会平仓。同样,止损也有类似的机制。这说明用户非常重视风险管理。

还有一个部分是在设置交易时段,比如在特定时间开仓或者平仓,这可能是为了避开市场的不活跃时段或者捕捉某些交易机会。此外,有一些关于订单队列和执行方式的设置,使用THISCLOSE表示以当前收盘价执行。

我还看到用户提到了“ORDERQUEUE”,这可能意味着他们希望在多个信号发生时,按照顺序执行,而不是同时执行。这对于避免滑点和保证交易准确性很重要。

有些地方看起来像是模板注释,指导用户如何设置模型的费率,以及如何查看持仓、资产和可用现金等信息。这些都是构建一个完整交易系统的必要部分。

总体来看,这段代码似乎是一个基础的趋势跟踪策略,结合了

补充内容 (2025-2-6 10:39):
总体来看,这段代码似乎是一个基础的趋势跟踪策略,结合了多种风险控制机制,比如止损、止盈和移动止损,以限制潜在的损失。用户可能是在尝试构建一个稳健的自动交易系统,同时也在学习如何优化和调整这些参数。

接下来,我应该考虑如何帮助用户进一步分析或优化这段代码。也许他们需要解释某些函数的用法,或者想了解如何添加更多的条件来改善策略表现。此外,还可以建议他们如何进行回测,以及如何根据回测结果调整策略参数。

另外,我还注意到有些部分是注释掉的,这可能意味着用户正在尝试不同的方法,或者还在开发过程中。因此,在回答时应该考虑这些可能性,并给出适当的建议,比如代码结构、潜在的问题...

model: Ollama (deepseek-r1:70b), time: 10:39
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:50 | 显示全部楼层


您提供的是一个EasyLanguage编程语言的交易策略片段,用于自动化交易系统。这段代码包含了多个部分,包括开仓、平仓、止损和移动止损等功能。以下是对这段代码的分步解释:

1. **变量定义**:
   - `KD`、`PD`、`KK` 和 `PK` 分别代表开多、平多、开空和平空的条件。

2. **信号语句排列规则**:
   - 交易系统中,信号需要按照“先平后开”的顺序执行,以避免同时触发多个信号导致的问题。例如,先执行平仓,再执行开仓。

3. **固定止损和止盈机制**:
   - **止盈**:如果开仓价高于平均入场价格超过一定比例(这里是100*MINDIFF),则全部平仓。
   - **止损**:如果平均入场价格低于开仓价超过一定比例(这里是10*MINDIFF),则全部平仓。

4. **移动止损机制**:
   - 计算持仓以来的最高价和最低价,与当前价格比较,判断价格回落幅度是否达到阈值(这里是1%),如果达到,则平仓。

5. **订单执行设置**:
   - 使用 `ORDERQUEUE` 确保多个信号按顺序执行,而不是同时执行。
   - 使用 `THISCLOSE` 指定以当前收盘价执行交易。

6. **持仓和资产信息显示**:
   - 显示持仓量、资产和可用现金,便于监控交易系统的状态。

7. **其他功能**:
   - 包括开多、平多、开空、平空等基本交易操作。
   - 使用 `BUY` 和 `SELL` 函数分别执行买入和卖出操作,使用 `BUYSHORT` 和 `SELLSHORT` 执行做空和平空操作。

8. **注释部分**:
   - 提供了一些可能的功能模板,如固定止损、移动止损等,可以根据需要选择是否启用。

### 总结
这段代码构建了一个完整的自动交易系统,涵盖了开仓、平仓、风险管理等多个方面。通过合理的信号排列和风险控制措施,能够有效地管理交易风险。如果您有具体的问题或需要进一步优化,可以提供更多细节,我将帮助您分析和改进策略。
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-11 16:20 | 显示全部楼层
20250211

DD-LINK KK-LINK.zip

62.01 KB, 下载次数: 2062

回复

举报

12

主题

50

帖子

50

积分

等级: 免费版

注册:
2021-6-29
曾用名:
发表于 2025-2-18 11:06 | 显示全部楼层
看不懂
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-3-25 18:19 | 显示全部楼层
<think>
好的,我现在要分析用户提供的期货交易策略的代码,并回答相关问题。首先,我需要仔细阅读这段代码,理解其逻辑和结构。然后,用户可能需要了解策略的基本原理、潜在风险、优化方向以及可能的改进措施。

首先,这段代码看起来是使用某种期货交易语言编写的,可能类似易语言或其他期货策略语言。代码中包含了多个买入和卖出的条件判断,特别是针对“控加空”和“控平空”的情况。策略主要集中在做空方向,通过多个层次的加仓和平仓条件来管理头寸。

接下来,我需要解析关键部分。例如:

1. **初始开仓条件**:在“开空”部分,条件可能是X1和A6同时满足。X1和A6可能代表某些技术指标或时间条件。比如,X1可能是某个指标信号,A6可能是时间相关的条件,比如在开盘后特定时间。

2. **加仓逻辑**:策略中有多个“控加空X”条目,每个条目根据当前持仓量和盈亏情况决定是否加仓。例如,当持仓小于某个负值(如-HMAX/3),且盈亏(BSELL)超过一定比例(如B1的某个倍数)时,触发加仓。这里需要注意持仓量的计算方式和盈亏的计算是否正确。

3. **平仓逻辑**:“控平空”条件似乎是在盈亏达到一定正数(B1的倍数)时部分平仓。例如,当BSELL(当前盈亏)超过B1的某个倍数时,按比例平仓。但需要确认BSELL的定义是否准确,是否代表盈利还是亏损,以及B1的具体数值。

接下来,我需要考虑潜在的问题:

- **条件判断的准确性**:例如,X1和A6的定义是否明确,是否存在逻辑错误。比如,A6是否是时间条件,是否在合适的时间触发。

- **持仓管理**:策略中的加仓和平仓比例是否合理?例如,每个控加空X的条件是否会导致过度加仓,尤其是当市场不利时,可能导致风险累积。

- **变量定义的正确性**:比如,BSELL是否代表当前的盈亏?如果是亏损,那么条件BSELL > B1*0可能在盈利时触发平仓,这需要确认。

- **逻辑冲突**:是否存在多个条件同时触发的情况?例如,加仓和平仓条件是否在某些情况下相互冲突,导致订单冲突或无法执行。

- **测试与回测**:策略是否经过充分的历史数据回测?是否有考虑滑点、手续费等因素的影响?

可能的改进方向:

- **风险控制**:增加止损机制,防止亏损过大。

- **参数优化**:调整加仓和平仓的比例参数,如H1、H2、H3等,可能通过优化找到更合适的数值。

- **条件过滤**:增加过滤条件,比如趋势判断,避免逆势操作。

- **代码逻辑简化**:检查是否有冗余的条件或可以合并的逻辑,提高代码效率。

用户的问题可能涉及策略的优缺点、如何优化,或者具体代码段的解释。例如,用户可能问:“这段代码的主要策略是什么?”,“有哪些潜在风险需要注意?”,“如何改进这个策略?”等。

现在,我需要将这些分析整理成结构化的回答,涵盖策略概述、潜在问题、改进方向以及可能的优化建议。同时,确保语言通俗易懂,避免过多技术术语,但保持准确性。
</think>

### 对期货交易策略代码的分析与建议

---

#### **1. 策略概述**
该策略以**做空(空头)**为核心,通过分层加仓和动态平仓管理头寸,主要特点如下:

- **初始开仓条件**:  
  在满足 `X1`(可能为技术信号,如价格跌破均线)和 `A6`(可能为时间条件,如开盘后特定时段)时,开空仓。

- **加仓逻辑**:  
  根据当前持仓量和盈利情况分层次加仓:  
  - 当持仓亏损扩大(如 `BSELL`(当前盈亏)低于一定阈值)时,逐步增加空头头寸。  
  - 每个层次的加仓条件涉及持仓量(如 `-HOLDING0 < -HMAX/3`)和亏损程度(如 `BSELL + B1*系数 < -B1*另一系数`)。

- **平仓逻辑**:  
  - **部分平仓**:当盈利达到一定比例(如 `BSELL > B1*倍数`)时,按比例平仓(如 `HOLDING0/H3`)。  
  - **强制清仓**:在特定时间点(如 `A6`条件触发)或极端亏损时可能强制平仓。

---

#### **2. 潜在风险与问题**

##### **A. 变量定义的模糊性**
- **BSELL 的定义**:  
  代码中 `BSELL` 的含义需明确。若其表示当前持仓的盈利,则 `控加空` 条件中的 `BSELL + B1*系数 < ...` 可能存在逻辑错误。例如,若策略意图在亏损时加仓,则需确认 `BSELL` 是否为负值。

- **参数未定义**:  
  `B1`、`H1`、`H2`、`H3` 等参数的具体数值未说明,可能导致策略效果不可预测。

##### **B. 风险失控风险**
- **过度加仓**:  
  若市场持续上涨(空头不利),策略可能因多次加仓导致巨额亏损。例如,`控加空X` 条件可能未设置止损,风险呈指数级放大。

- **平仓条件不足**:  
  策略缺少止损机制,仅依赖盈利平仓,无法在亏损扩大时及时退出。

##### **C. 逻辑冲突与效率问题**
- **条件重叠**:  
  多个加仓条件(如 `控加空0` 到 `控加空X`)可能同时触发,导致重复下单或冲突。

- **时间条件依赖**:  
  `A6` 若为时间敏感条件(如开盘后5分钟),需确保其与服务器时间同步,否则可能错失机会或误触发。

##### **D. 回测与实盘差异**
- **忽略交易成本**:  
  策略未考虑手续费、滑点或保证金占用,可能高估收益。

- **历史局限性**:  
  若未经过充分回测(如极端行情、新闻事件影响),策略可能对当前市场无效。

---

#### **3. 改进方向与优化建议**

##### **A. 明确变量与参数**
- **定义关键变量**:  
  清晰说明 `BSELL`(例如 `当前持仓盈亏 = (开仓价 - 当前价) * 合约乘数`)、`B1`(如 `B1 = 初始止损比例 * 保证金`)等,确保逻辑一致性。

- **参数化配置**:  
  将 `H1`、`H2` 等比例参数外部化,便于回测时调整(如通过 Excel 输入参数组合)。

##### **B. 强化风险控制**
- **止损机制**:  
  添加止损条件,例如:  
  ```  
  如果 (BSELL < -最大允许亏损) 则 平仓  
  ```

- **仓位限制**:  
  设置最大持仓量(如 `HOLDING0 < -HMAX` 时禁止加仓)。

##### **C. 逻辑简化与优化**
- **合并重复条件**:  
  将相似的加仓条件合并为循环结构,例如:  
  ```  
  for (i = 0; i < 层数; i++) {  
      如果 (当前亏损 > 第i层触发条件) 则 加仓  
  }  
  ```

- **动态参数调整**:  
  根据市场波动率调整加仓幅度(如高波动时减少每层比例)。

##### **D. 测试与验证**
- **多时段回测**:  
  测试不同行情(如趋势市、震荡市、极端波动)下的表现,并计算盈亏比、夏普比率。

- **模拟交易**:  
  在模拟盘中验证策略,观察订单执行效率和滑点影响。

##### **E. 代码结构优化**
- **模块化设计**:  
  将条件判断、执行逻辑分开,便于维护。例如:  
  ```  
  函数 计算加仓量(当前持仓, 盈亏) {  
      返回 计算后的加仓比例  
  }  
  ```

- **添加注释与文档**:  
  为关键逻辑添加注释,说明设计意图(如“控加空X:在亏损20%时加仓10%”)。

---

#### **4. 总结**
该策略通过分层加仓和动态平仓试图捕捉空头行情,但需注意以下几点:  
1. **风险控制**:必须加入止损和仓位限制,避免极端亏损。  
2. **参数优化**:通过回测确定 `B1`、`H1` 等参数的合理值。  
3. **逻辑清晰化**:简化条件判断,减少冲突,提升执行效率。  

在完善上述问题后,可进一步结合其他指标(如RSI、MACD)增强策略的市场适应性。  

---

如需更具体的代码实现或参数设定建议,请提供变量定义和策略背景信息。
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-3-25 18:40 | 显示全部楼层
<think>
嗯,我现在需要分析用户提供的交易系统代码,并给出一个详细的分析报告。首先,我需要仔细阅读这段代码,理解每个部分的功能和逻辑。看起来这是一个基于某种交易系统的策略,可能用于期货或股票交易。用户希望我像一个专家一样分析这个代码,指出优缺点、潜在问题,并提出改进建议。同时,用户希望我用中文描述,结构清晰,分点列出。

首先,我应该先通读整个代码,识别主要部分。代码中有很多注释掉的行,可能有些是之前尝试的策略,但当前生效的可能只有未被注释的部分。需要确定哪些语句是实际在用的,哪些被注释掉了。

从代码结构来看,主要的交易信号由开多、加多、控平多、收盘清仓等部分组成。例如,开多的条件是X1 AND A6,加多的条件是B1<0 AND A6,控平多的条件是B1>=5,收盘清仓的条件是(D2-D3)<=1。不过,大部分的语句都被注释掉了,可能实际生效的只有未被注释的部分。

接下来,我需要逐个分析各个部分。首先看看变量定义部分,比如X1、A6、B1、D2、D3等,但代码中没有看到这些变量的定义,可能是在其他地方定义的,或者用户可能没有提供完整的代码。这可能会导致分析的困难,因为变量的定义对策略的理解至关重要。不过,我需要假设这些变量是已定义的,并尝试根据上下文推断它们的含义。

例如,X1可能是某种市场条件,如价格突破某个指标,或者成交量信号。A6可能是其他条件的组合,比如趋势指标。B1可能是一个参数,例如移动止损的距离或盈利水平。D2和D3可能与日期或时间有关,比如收盘时间判断。

接下来,看开多的部分:开多的条件是X1 AND A6,开仓1手,以市价成交。这说明当X1和A6都成立时,系统会开多仓。但需要明确X1和A6的具体含义才能进一步分析。

加多的条件是B1<0 AND A6,同样开仓1手。这里B1可能是一个动态参数,比如当前盈利/亏损值,当B1小于0(即亏损)时继续加仓,这可能带来风险,因为加仓在亏损时可能会加剧损失。

控平多的条件是B1>=5,卖出持仓的一半。这里可能指的是当盈利达到5个单位(比如点数或百分比)时,平掉一半仓位锁定利润。但需要确认B1的具体定义是否合理。

收盘清仓的条件是(D2-D3)<=1,卖出全部持仓。这可能涉及到收盘时间的判断,比如在市场收盘前1分钟清仓,但具体D2和D3的定义不明,可能存在逻辑错误。

此外,代码中有许多注释掉的止损止盈部分,比如固定止损和移动止损的条件,但未被启用。这可能意味着当前策略缺乏止损机制,潜在风险较高。

另外,注意到在控平多和加多的条件中,B1的使用可能存在逻辑问题。例如,加多在B1<0时加仓,而控平多在B1>=5时平仓,这可能形成一种动态调整的策略,但需要确保参数设置合理,否则可能导致过度交易或亏损扩大。

还有一些变量如HHV(H, ENTERBARS)和LLV(L, ENTERBARS),这些是最高价和最低价的函数,可能用于移动止损,但未被启用。如果这些止损机制被注释掉,那么策略可能缺乏保护机制。

另一个需要注意的是,代码中的注释部分提到了持仓、资产和可用现金的显示,但实际交易语句可能只有一部分被启用,需要检查是否有遗漏的关键条件。

现在,我需要总结出策略的主要逻辑:

1. 开多:当X1和A6条件满足时,开仓1手。
2. 加多:在亏损(B1<0)且A6成立时,加仓1手。
3. 控平多:当盈利足够(B1>=5)时,卖出一半仓位。
4. 收盘清仓:在特定时间(D2-D3<=1)平仓。
5. 注释掉的止损止盈可能未被使用,存在风险。

接下来分析优缺点:

优点可能包括:
- 灵活的仓位调整,通过加仓和减仓来管理风险和利润。
- 在盈利时部分平仓锁定利润,可能优化收益。

缺点或潜在问题:
- 缺乏明确的止损机制,可能导致亏损无限扩大。
- 加多条件在亏损时继续加仓,可能加剧风险。
- 变量定义不明确,可能导致策略执行不符合预期。
- 时间条件如收盘清仓的判断可能存在逻辑错误(比如D2和D3的定义不明确)。
- 注释掉的止损部分可能未被激活,存在隐患。

改进建议:
1. 明确定义所有变量,确保参数合理且可调整。
2. 添加止损机制,例如固定止损或跟踪止损。
3. 重新评估加多条件,避免在亏损时过度加仓。
4. 检查时间条件,确保收盘清仓的逻辑正确。
5. 测试策略的历史表现,优化参数。
6. 增加风险管理模块,如最大持仓量或止损点。

另外,需要考虑代码中的语法或逻辑错误。例如,控平多卖出一半仓位,但未指定是总仓位的50%还是当前仓位的一部分,可能需要明确。

此外,注释掉的代码部分可能包含有用的策略组件,应该考虑是否需要启用或调整。

总结来说,该策略的核心是基于条件的开仓、加仓和平仓,但缺乏必要的风险控制,并且变量定义不明确可能影响策略的可靠性。改进方向应集中在风险管理和参数明确化上。
</think>

### 交易系统代码分析报告

---

#### **1. 策略概述**
该交易系统的核心逻辑基于条件触发的开仓、加仓、减仓和平仓操作,主要功能包括:
- **开多仓**:当条件 `X1` 和 `A6` 满足时,开仓1手。
- **加多仓**:当条件 `B1 < 0` 且 `A6` 满足时,追加1手。
- **控平多仓**:当 `B1 >= 5` 时,平掉当前仓位的50%。
- **收盘清仓**:在特定时间(`D2 - D3 <= 1`)平掉全部持仓。

但代码中存在大量注释内容(如止损/止盈逻辑未启用),且部分关键变量(如 `X1`, `A6`, `B1`, `D2`, `D3`)未定义,需假设其含义或可能存在逻辑漏洞。

---

#### **2. 优缺点分析**

##### **优点**
1. **仓位动态调整**:
   - **控平多仓**:在盈利时部分平仓锁定利润,可能优化收益。
   - **加多仓机制**:在特定条件下(如亏损时)追加仓位,试图通过加仓摊低成本。

2. **收盘清仓**:
   - 若 `D2` 和 `D3` 定义合理(如收盘时间),可在收盘前自动平仓,避免隔夜风险。

3. **灵活性**:
   - 策略可通过调整变量定义(如 `X1`, `A6`)适配不同市场环境。

---

##### **缺点与潜在问题**
1. **缺乏止损机制**:
   - **未启用固定止损**:注释中的止损逻辑(如 `Fixed Stop-Loss`)未被激活,可能导致亏损无限扩大。
   - **加仓风险**:在亏损时(`B1 < 0`)追加仓位,可能加剧资金风险。

2. **变量定义不明确**:
   - 关键条件(如 `X1`, `A6`, `B1`)未定义,可能导致逻辑混乱或执行结果不可预测。
   - `D2 - D3 <= 1` 的时间条件未明确,可能因变量定义错误导致平仓时机不当(如提前或延迟)。

3. **加仓逻辑矛盾**:
   - **追加仓位的合理性**:若 `B1 < 0` 是亏损指标,此时加仓可能违反风险管理原则(如“不要逆势加仓”)。

4. **控平多仓的执行风险**:
   - 若 `B1` 代表盈利点数,`B1 >= 5` 时平仓50%,可能因参数设置不当(如数值过小)导致过早锁定利润。

5. **代码逻辑缺陷**:
   - 部分条件可能存在语法或逻辑错误(如未指定平仓方向或手数单位)。
   - 注释内容可能包含更成熟的风险控制策略,但未被启用。

---

#### **3. 改进建议**

##### **1. 明确定义变量与参数**
- **变量定义**:明确 `X1`, `A6`, `B1`, `D2`, `D3` 的具体含义(如 `X1` 可能是价格突破某均线,`A6` 是趋势指标,`B1` 是当前盈利点数)。
- **参数优化**:通过历史回测,调整 `B1` 的阈值(如 `>= 10`),避免过早平仓。

##### **2. 强化风险管理**
- **止损机制**:
  - **固定止损**:设定最大允许亏损(如 `Max_Loss = -5%`)。
  - **跟踪止损**:在盈利后设置动态止损(如 `Stop_Loss = Entry_Price - 2%`)。
- **头寸管理**:
  - 限制单次开仓手数(如不超过总资金的1%)。
  - 禁止在亏损时加仓(移除 `B1 < 0` 的加仓条件)。

##### **3. 优化时间条件**
- **收盘清仓**:
  - 明确 `D2` 和 `D3` 的定义(如 `D2 = Current_Time`, `D3 = Close_Time`),确保逻辑为 `当前时间 < 收盘时间` 时平仓。

##### **4. 启用注释中的有效逻辑**
- **止盈触发**:
  - 激活注释中的止盈条件(如 `Profit >= 10%` 时平仓),平衡盈利保护与机会风险。

##### **5. 测试与回测**
- **历史回测**:
  - 验证策略在不同市场周期(如趋势、震荡)中的表现。
  - 检查参数敏感性(如 `B1` 阈值对盈亏的影响)。
- **压力测试**:
  - 模拟极端行情(如黑天鹅事件),评估止损机制的有效性。

##### **6. 代码逻辑修正**
- **明确平仓方向与手数**:
  ```python
  # 控平多仓时明确操作方向
  if B1 >= 5:
      close_percent = 0.5  # 平仓50%
      current_pos = position.size
      close_size = current_pos * close_percent
      sell(close_size)
  ```

---

#### **4. 总结**
该策略在动态仓位管理和收盘清仓逻辑上具备一定潜力,但需解决以下核心问题:
- **变量定义模糊**可能导致策略失效;
- **缺乏止损**和**逆势加仓**可能引发重大风险;
- **参数未优化**可能降低收益。

通过明确变量、强化风控、启用注释中的有效逻辑并进行充分回测,可显著提升策略的可靠性和盈利能力。
回复

举报

3

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-3-25 18:54 | 显示全部楼层

交流想法而已,不要当真就好了。
回复

举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-29 21:08 , Processed in 0.127537 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表