投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
variable:cc:=0,kcang:=c;
if cc>=0 and spkcond then begin
pingcang:=c;
if cc<=0 and bpkcond then begin
if cc=0 and bpkcond then begin
cc:=1;
if cc=0 and spkcond then begin
为什么上述代码没有信号?以此写法策略要怎么写?
投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
第一句声明全局变量有误:应该改成:variable:cc:=0,kaicang:=c,pingcang:=c;
几个要素:自定义持仓变量cc,自定义开仓价格kaicang和平仓价格pingcang。
在触发开仓和平仓时对cc,kaicang,pingcang进行赋值。
IF中不支持写入BK(1)这样的加减仓指令,1楼思路需要替换为一下结构实现:
BPKCOND:=C>MA(C,20);
SPKCOND:=C<MA(C,20);
BKVOL=0 && BPKCOND,BK(1);
SKVOL=0 && SPKCOND,SK(1);
SPKCOND,SP(BKVOL);
BPKCOND,BP(SKVOL);
PINGCANG:=REF(C,1+MIN(REFSIG_PLACE(SP,1),REFSIG_PLACE(BP,1)));
KAICANG:=REF(C,1+MIN(REFSIG_PLACE(SK,1),REFSIG_PLACE(BK,1)));
投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
更进一步,进行加仓和减仓,每一次加仓和减仓都对持仓变量进行赋值,并且记录价格。
if cc>0 and c>kaicang*1.02 then begin
if cc<0 and c
end
投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
没办法在加减仓策略当中对每一次开仓的变量进行赋值吗??那怎么记录第一次开仓的价格/每一次加仓时的开仓价格??
使用EXITSIG_PRICE函数就可以取到每一次加仓的价格,具体用法可以参考函数说明
投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
ENTRYSIG_PRICE(N) 取一次完整交易中第N个开仓信号的价格。
如果是不完整交易中,怎么去第N个开仓信号的价格?就是说在上一次平仓信号之后(多平或空平),开多,加多,加多,...加多。还没有出现平仓信号,然后要取最近这些多头开仓或加仓的价格?
开多,加多,加多,...加多就是一次完整的交易
ENTRYSIG_PRICE(N)函数是正着取首次开仓、第二次开仓...的信号价格
如果需要倒着取使用REFSIG_PRICE函数就可以,具体用法可以参考函数说明
投资者咨询:
简单策略的编程问题 (文华财经WH8赢智V8.2)来源:文华财经 日期:2018-8-21 10:20
ENTRYSIG_PRICE(N) 取一次完整交易中第N个开仓信号的价格。
用法:ENTRYSIG_PRICE(N) 取一次完整交易中第N个开仓信号的价格。如果没有开仓信号,则该函数返回空值。
注:
1、开仓信号有:BK,SK,BPK,SPK
在函数说明中,从开仓到持仓为0被视为一次完整交易。持仓为0意味着平仓。只开仓不平仓,不能理解为一次完整交易,跟你的说法不符吧??
从开仓到持仓为0被视为一次完整交易
“开多,加多,加多,...加多”还没有清仓呢,所以是一次完整交易的
如果您有疑问可以编写一个简单的模型来测试,理解一下:
ISUP,BK(1);
TRADE_AGAIN(10);
ENTRYSIG_PRICE(2);