等级: 免费版 
- 注册: 
 - 2023-4-11
 
- 曾用名: 
 
 
 
 | 
 
 
 楼主 |
发表于 2023-4-19 22:25
|
显示全部楼层
 
 
 
 
老师能否对如下代码解析一下,我调整半天还是在开仓后第二根K线就平仓了,请老师查看下。 
variable:maxprofit1=0;//有仓位时最大获利幅度,请问这里的全局变量是否需要多空区分?=0又代表什么意思? 
variable:maxprofit2=0;//有仓位时最大获利幅度,请问这里的全局变量是否需要多空区分?=0又代表什么意思? 
 
 
//多单止盈模块****************************************************************************** 
//判断当前持仓状态下的最大盈利 
DKwin:=0; 
DKwin2:=0; 
if holding > 0 and enterbars > 0 then 
begin 
  DKwin:=(c-enterprice)/enterprice*100; //记录最大盈利 
  if DKwin>maxprofit1 then 
    maxprofit1:=DKwin; 
 
  DKwin2:=(maxprofit1-DKwin)/maxprofit1*100; //最大盈利后的回调幅度,这里对回调幅度的计算我用数值代入还是觉得不对?是以百分比的回调比例吗?例如5000开多单,最高盈利价格到5050,回调盈利的60%应该是50*60%,回调触发平仓位应该是(5050-5000)*60%+5000=5030价格位,但是事实是在这之前开仓后的第二根就平仓了 
end 
 
 
//出现最高盈利后,回落到盈利的60%平仓出场 
多单止赢:SELL(DKwin2 >= 60 and openprofit > 0, 0,limit,c); 
 
 
//********************************************************************************************************************************** 
//********************************************************************************************************************************** 
 
 
 
//空单止盈模块****************************************************************************** 
//判断当前持仓状态下的最大盈利 
KKwin:=0; 
KKwin2:=0; 
if holding < 0 and enterbars > 0 then 
begin 
  KKwin:=(enterprice-C)/enterprice*100; //记录最大盈利 
  if KKwin>maxprofit2 then 
    maxprofit2:=KKwin; 
 
  KKwin2:=(maxprofit2-KKwin)/maxprofit2*100; //最大盈利后的回调幅度,这里对回调幅度的计算我用数值代入还是觉得不对?是以百分比的回调比例吗?例如5050开空单,最高盈利价格到5000,回调盈利的60%应该是50*60%,回调触发平仓位应该是5050-(5050-5000)*60%=5020价格位,但是事实是在这之前开仓后的第二根就平仓了 
end 
 
 
//出现最高盈利后,回落到盈利的60%平仓出场 
空单止赢:SELLSHORT(KKwin2 >= 60 and openprofit > 0, 0,limit,c); 
 
 
还请老师帮检查问题在哪里?是不是LIMIT限价造成的? 
 |   
 
 
 
 |