累加计算的实现 2 (文华财经WH8赢智V8.2)

投资者咨询:累加计算的实现 2 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-20 22:12
 老师您好!

我的思路如下:

1)定义UDI:UDI为第I根K线的价格比较结果。

收盘价>(T-N1)K线收盘价时,UDI = 1;收盘价 < (T-N1)K线收盘价时,UDI = -1收盘价=(T-N1)K线收盘价时,UDI = 0

2)对UDI进行累加计算。当  其值  与  上一个值  不等时,停止本次累加。

3)当UDI的累加计算结果为N2时,为一个  卖出启动  的形成;当结果为-N2时,为一个  买入启动  的形成。

4)于 买入启动  形成的随后一根K线位置,开始买入计数,在某一个K线上同时满足D, E, F  3个条件时,买入计数 累加1,当买入计数累加至N3发出买入信号。

5)于 卖出启动  形成的随后一根K线位置,开始卖出计数,在某一个K线上同时满足A, B, C  3个条件时,卖出计数 累加1,当卖出计数累加至N3发出卖出信号。

6)当形成一组新的  卖出启动  时,取消上一组未最终形成卖出信号的  卖出计数

7)当形成一组新的  买入启动  时,取消上一组未最终形成卖出信号的  买入计数

8)买入信号止损点:买入计数过程中的市场最低点(注:于 买入启动  形成的随后一根K线位置,开始买入计数

9)卖出信号止损点:卖出计数过程中的市场最高点(注:于 卖出启动  形成的随后一根K线位置,开始卖出计数

10)止盈:反向信号发生后,随后一根K线的开盘价


按此在新窗口浏览图片
文件名:buy.png


按此在新窗口浏览图片
文件名:sell.png


按此在新窗口浏览图片
文件名:动态止损.png

投资者咨询:累加计算的实现 2 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-20 22:12
以下是我写的代码。

// 设置全局变量:买入计数BUYCOUNT & 卖出计数SELLCOUNT

VARIABLE: BUYCOUNT := 0, SELLCOUNT := 0;

 

// 定义UDI

// 收盘价>(T-N1)K线收盘价时,UDI = 1;收盘价 < (T-N1)K线收盘价时,UDI = -1

// 收盘价=(T-N1)K线收盘价时,UDI = 0

UDI := IFELSE(C > REF(C,N1),1,-1);

 

// 定义SELLSTARTBUYSTARTUDI同号的连续根数

// 卖出启动:SELLSTART

// 买入启动:BUYSTART

SELLSTART := VALUEWHEN(UDI > 0,BARSLAST(UDI <= 0));

BUYSTART := VALUEWHEN(UDI < 0,BARSLAST(UDI >= 0));

 

// 当累加结果为N2时,卖出启动

IF SELLSTART = N2 THEN

BEGIN

SELLCOUNT := 0;  // 卖出计数设为0

END

 

// 当累加结果为-N2时,买入启动

IF BUYSTART = -1 * N2 THEN

BEGIN

BUYCOUNT := 0;   // 买入计数设为0

END

 

// 发出卖出信号的3个条件

A := C <= REF(L,2)

B := L < REF(L,1)

C :=                            // 收盘价<前一个计数的收盘价

 

// 发出买入信号的3个条件

D := C >= REF(H,2)

E := H > REF(H,1)

F :=                             // 收盘价>前一个计数的收盘价


// 在某一根K线上,同时满足A&B&C时,卖出计数SELLCOUNT + 1

IF A && B && C THEN

BEGIN

SELLCOUNT := SELLCOUNT + 1;

END

 

// 在某一根K线上,同时满足D&E&F时,买入计数BUYCOUNT + 1

IF D && E && F THEN

BEGIN

BUYCOUNT := BUYCOUNT + 1;

END

 

// 买入/卖出累加计数为N3,开仓

BUYCOUNT = N3, BK;

SELLCOUNT = N3, SK;


// 买入信号止损点:买入计数过程中的市场最低点

// 卖出信号止损点:卖出计数过程中的市场最高点

 

// 止盈:反向信号发生后,随后一根K线的开盘价

 

// 15:00强行平仓

CLOUSEMINUTE <= 1, CLOSEOUT;

 

AUTOFILTER;

   
投资者咨询:累加计算的实现 2 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-20 22:12
其中:C和F,以及6)7)8)9)10)不会写。请老师赐教!
技术人员回复
日期:2018-5-21 8:21
 分析后下午工作时间给您回复
技术人员回复
日期:2018-5-21 13:26
参考:

VARIABLE: QD:=0;
 
N1:=5;
N2:=5;
N3:=5;
UDI := IF(C > REF(C,N1),1,IF(C < REF(C,N1),-1,0));

IF UDI <> REF(UDI,1) THEN BEGIN
QD:=1;
END

IF UDI = REF(UDI,1) THEN BEGIN
QD:=REF(QD,1)+1;
END

SELLSTART :IF(UDI>0,QD,0),NODRAW;
BUYSTART : IF(UDI<0,-QD,0),NODRAW;

A := C <= REF(L,2);
B := L < REF(L,1);
D := C >= REF(H,2);
E := H > REF(H,1);
BKJS:IF(BUYSTART < -N2 ,COUNT(A&&B,SUMBARS(QD=1,1)),NULL);
SKJS:IF(SELLSTART > N2 ,COUNT(D&&E,SUMBARS(QD=1,1)),NULL);

BKJS>N3,BK;
C<LLV(L,SUMBARS(QD=1,1)),SP;
SUMBARS(QD=1,2)<BARSBK && C>REF(O,SUMBARS(QD=1,2)-2),SP;
SKJS>N3,SK;
C>HHV(H,SUMBARS(QD=1,1)),BP;
SUMBARS(QD=1,2)<BARSSK && C<REF(O,SUMBARS(QD=1,2)-2),BP;
AUTOFILTER;

投资者咨询:累加计算的实现 2 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-20 22:12
老师您好。感谢回复。

请问:

1)

// 发出卖出信号的3个条件

A := C <= REF(L,2)

B := L < REF(L,1)

C :=                            // 收盘价<前一个计数的收盘价

 

// 发出买入信号的3个条件

D := C >= REF(H,2)

E := H > REF(H,1)

F :=                             // 收盘价>前一个计数的收盘价


请问:C和F如何体现呢?谢谢!

 
2)SUMBARS(QD = 1, 1)如何理解呢?将QD向前累加直到大于等于1,返回这个区间的周期数?
技术人员回复
日期:2018-5-23 16:54

 C F条件用来定义计数,又需要取计数收盘价

 

这里逻辑上有矛盾,需要您调整思路为A B 这种方式先把计数定义出来

 

 

QD是计数开始统计的起始点,SUMBARS(QD = 1, 1)统计计数的周期也就是起始点当前的距离