前十几分钟发了个贴问了问题,退出后发现再也进不去哪个问题,所以不好意思只有再问一次。
部分程序代码如下:
{参数设定}
VARIABLE:HIGHPRICE:=0;
TURN:=SARTURN(20,1,20);
.
.
.
IF TURN=1 THEN BEGIN
BUY(1,1,MARKET);
HIGHPRICE:=OPEN;
END
.
.
.
{止盈}
IF HOLDING>0 THEN BEGIN
IF HIGH>HIGHPRICE THEN BEGIN
HIGHPRICE:=HIGH;
END
{盈利超过30点后最高价回撤50%止盈}
IF (HIGHPRICE-AvGENTERPRICE)>=30 THEN BEGIN
IF (HIGHPRICE-CLOSE)>0.5*(HIGHPRICE-AvGENTERPRICE) THEN BEGIN
SELL(1,0,MARKET);
END
END
.
.
.
刚才我的甲醇01合约(运行在”15分钟K线,走完K线模式“下)最高到了2174点(01:30这根K),后回落到2151点(03:00这根K),而我的开仓均价为2141,按点数符合止盈条件,可程序却没有止盈,请问程序哪写得不对?
你说的开仓均价2141是你账号栏的均价吧。
你输出你的止盈条件和因子值,在k线图上对应的位置看下就知道了。图表都是根据历史k线计算的。
注:你策略确认时加仓模式?是的话,你HIGHPRICE:=OPEN;在每次开仓有都会被打断从新记录。
[此贴子已经被作者于2019/8/29 9:06:58编辑过]
老师您认为是2141不准确的原因?2141是我真实帐户里的开仓均价,最近两天没有加新仓。
HIGHPRICE:=OPEN;这句话我的本意是用最新加仓的那根k线的开盘价作为比较的基准。这样合适不?
“老师您认为是2141不准确的原因?2141是我真实帐户里的开仓均价,最近两天没有加新仓。
” 图表上不是按照实际持仓的价格去进行止盈止损的。它是按照开仓K位置上的价格进行止盈止损的。
也就是说(HIGHPRICE-avGENTERPRICE)>=30
这种计算 这里的avGENTERPRICE并不是2141 这个实际持仓均价,另外你如果还有其他开仓加仓的代码avGENTERPRICE
的返回值也会受到影响的。 所以最好在图表上把这些判断都输出出来,这样看得比较直接点。
另外建议你简单描述下你的思路,这样方便我们判断。