欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请版主大人把图表程序化的移动止盈策略修改成后台策略

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2856人关注过本帖树形打印复制链接

主题:[求助]请版主大人把图表程序化的移动止盈策略修改成后台策略

帅哥哟,离线,有人找我吗?
qf7171
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:0 威望:0 精华:0 注册:2018/1/16 8:49:23
[求助]请版主大人把图表程序化的移动止盈策略修改成后台策略  发帖心情 Post By:2020/9/18 10:29:05    Post IP:125.36.117.13[只看该作者]

请版主大人把以下图表程序化的移动止盈策略修改成单账户的后台移动止盈策略
{代码工作在图表自动交易模式下当出现开仓后,开仓价格相比,最大损失超过2%止损

当出现盈利后,与最大盈利价格相比,回落到60%幅度后止赢离场}

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
 BUY(1,1);
 maxprofit:=0;
END

//平仓
SELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;

if holding > 0 and enterbars > 0 then
begin
 win:=(c-enterprice)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win; 
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if holding < 0 and enterbars > 0 then
begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
止损:SELL(win < -2,0);
 
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:SELL(win2 >= 60 and openprofit > 0, 0);


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/9/18 10:39:25    Post IP:58.246.57.26[只看该作者]

 MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

GLOBALVARIABLE:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
BEGIN
tBUY(1,1);
maxprofit:=0;
END

//平仓
tSELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
GLOBALVARIABLE:win:=0;
GLOBALVARIABLE:win2:=0;

if TBUYHOLDINGEX('','',1)> 0 and tenterbars > 0 then
begin
 win:=(c-tenterprice)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//你代码里面没有空头开仓,这部分代码无论是原先的图表的还是现在改写的都是无效的。
if TSELLHOLDINGEX('','',1)>0 and tenterbars > 0 then
begin
 win:=(tenterprice-c)/tenterprice*100; //记录最大盈利
 if win > maxprofit then
  maxprofit:=win;
 
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//出现浮动亏损比如2%平仓
止损:tSELL(win < -2,0);
 
//出现最高盈利后,回落到盈利的60%平仓出场
止赢:tSELL(win2 >= 60 and topenprofit > 0, 0);


图表和后台不仅仅代码编写有差异,整体运行机制上也有些差异,建议先熟悉下后台的功能。
[此贴子已经被作者于2020/9/18 10:41:18编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
qf7171
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:0 威望:0 精华:0 注册:2018/1/16 8:49:23
  发帖心情 Post By:2020/9/18 11:44:35    Post IP:218.69.54.245[只看该作者]

多谢版主及时出手,我下午试一下看看再来跟您讨论

 回到顶部