海龟交易改进 (文华财经WH8赢智V8.2)

投资者咨询:海龟交易改进 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-16 14:36
VARIABLE:NN:=0;
TR:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
ATR:=MA(TR,26);//求N个周期内的TR的简单移动平均
IF BARPOS<=27 THEN
BEGIN
NN:=ATR;
END
IF BARPOS>27 THEN
BEGIN
NN:=(19*NN+TR)/20;
END
N:=NN;//迭代求仓单基本单位N
TC:INTPART(MONEYTOT*0.01/(UNIT*N)*0.5),NODRAW;//UNIT=帐户净值的1%/(N×每点价值量)
L1:=REF(HHV(HIGH,20),1),COLORRED,LINETHICK2;
L2:=REF(LLV(LOW,20),1),COLORGREEN,LINETHICK2;
LM:=(L1+L2)/2,COLORBLACK,LINETHICK2;
CROSSUP(CLOSE,L1)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BPK(TC);//价格超过20周期的最高值,首次买入开仓,手数为TC手
C>=BKPRICE+0.5*N&&(ISLASTBPK OR ISLASTBK),BK(TC);//价格在上次开仓的基础上上涨0.5倍N,买入加仓TC手
CROSSDOWN(CLOSE,L2)&&ISLASTBK=0&&ISLASTSK=0,SPK(TC); //价格跌破20周期的最低值,首次卖出开仓,手数为TC手
C<=SKPRICE-0.5*N&&(ISLASTSPK OR ISLASTSK),SK(TC);//价格在上次开仓的基础上下跌0.5倍N,卖出加仓TC手
C<=BKPRICE-2*N&&BKVOL>0,SP(BKVOL);//价格小于开仓价减去2倍的N,止损平仓
C>=SKPRICE+2*N&&SKVOL>0,BP(SKVOL); //价格大于开仓价加上2倍的N,止损平仓
CROSSUP(C,HV(H,10))&&SKVOL>0,BP(SKVOL);//价格上穿10周期最高价,平仓
CROSSDOWN(C,LV(L,10))&&BKVOL>0,SP(BKVOL); //价格下穿10周期的最低价,平仓
BKVOL,NODRAW;
SKVOL,NODRAW;

请问老师如何改进程序,使得:每个加仓点单独出场,以当前所有仓位的持仓均价为止损点。
技术人员回复
日期:2018-7-16 14:48
 实现不了每个加仓点单独出场的

因为交易所规定的交易机制是先开先平,所以实现不了根据加仓点位平仓

建议您调整思路


投资者咨询:海龟交易改进 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-16 14:36
那如何提取“当前所有仓位的持仓均价”呢?
技术人员回复
日期:2018-7-16 15:05
 使用以下两个函数即可:

BKPRICEAV
SKPRICEAV
投资者咨询:海龟交易改进 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-16 14:36
这两个函数不是开仓均价吗?有隔夜操作应该结合上一交易日收盘价吧?
技术人员回复
日期:2018-7-16 16:52
 如下编写请参考:

JGA:=IF(BKVOL>REF(BKVOL,1),BKPRICE,0);
SSA:=IF(DAYBARPOS=1&&BKVOL>0,BKVOL,0);
JJA:IF(BARSSP>DAYBARPOS,(SUM(JGA,DAYBARPOS)+(BKVOL-SSA)*YSETTLE)/BKVOL,BKPRICEAV),NODRAW;//多头持仓均价

JGB:=IF(SKVOL>REF(SKVOL,1),SKPRICE,0);
SSB:=IF(DAYBARPOS=1&&SKVOL>0,SKVOL,0);
JJB:IF(BARSBP>DAYBARPOS,(SUM(JGB,DAYBARPOS)+(SKVOL-SSB)*YSETTLE)/SKVOL,SKPRICEAV),NODRAW;//空头持仓均价

 
投资者咨询:海龟交易改进 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-16 14:36
/UNIT=帐户净值的1%

在何处定义的呢?
技术人员回复
日期:2018-7-28 18:54
 参考下面的写法:

TC..INTPART((MONEYTOT*0.01/(UNIT*N)));//根据权益的1%计算下单手数