金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2995|回复: 10

开仓2手,满足止损条件平1手,满足平仓条件平1手。不知道错在哪麻烦老师帮看看

[复制链接]

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
发表于 2023-7-14 14:40 | 显示全部楼层 |阅读模式
{交易系统}
variable:maxprofit=0;//有仓位时最大获利幅度
平空:SELLSHORT(平空条件  ,0,MARKET);                  //平空信号
if  开多条件  and holding=0 then
begin
开多:BUY(开多条件 AND HOLDING=0,手数,MARKET);          //开多信号
maxprofit:=0;
end  
平多:SELL(平多条件  ,0,MARKET);                       //平多信号
if  开空条件  and holding=0 then
begin
开空:BUYSHORT(开空条件 AND HOLDING=0,手数,MARKET);     //开空信号
maxprofit:=0;
end  
//判断当前持仓状态下的最大盈利
win:=0;
win2:=0;
if holding > 0 and enterbars > 0 then
begin
  //win:=(c-enterprice)/enterprice*100; //记录最大盈利
  win:=c-enterprice; //记录最大盈利
  if win>maxprofit then
    maxprofit:=win;

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

win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end
//出现浮动亏损比如2%平仓
{多止损:SELL(win < -4,0,limit,c);}
//出现最高盈利后,回落到盈利的60%平仓出场
多止赢:SELL(win2 >= 94 and openprofit >1R*2, 1,limit,c);
{空止损:SELLSHORT(win < -4,0,limit,c);}
空止赢:SELLSHORT(win2 >= 94 and openprofit >1R*2, 1,limit,c);



补充内容 (2023-7-14 14:42):
1R:B*C/100/MINDIFF*MINDIFF*MULTIPLIER,linethick0;//得到一个具体金额

补充内容 (2023-7-14 14:43):
但是这个具体金额在盘中是变动的,不会有什么影响吧
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-14 15:04 | 显示全部楼层
你这里平仓也是写的全平呀。

平空:SELLSHORT(平空条件  ,0,MARKET);

这里是0 就是全平的意思。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
 楼主| 发表于 2023-7-14 15:15 | 显示全部楼层
技术009 发表于 2023-7-14 15:04
你这里平仓也是写的全平呀。

平空:SELLSHORT(平空条件  ,0,MARKET);

是我想达到止损条件时平1手,达到平仓条件时全平掉。如果这里填1,那么如果没有触发止损条件,那就还有1手在该平仓时没有平掉
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-14 15:20 | 显示全部楼层


你现在遇到的问题是什么情况?触发多次止损平仓?


“1R:B*C/100/MINDIFF*MINDIFF*MULTIPLIER,linethick0;//得到一个具体金额” 你这个部分和前面代码的关系是什么?你提供的部分是看不出来他们有啥关系的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
 楼主| 发表于 2023-7-14 15:55 | 显示全部楼层
技术009 发表于 2023-7-14 15:20
你现在遇到的问题是什么情况?触发多次止损平仓?

先不管这个吧,换成浮盈超过3000元,回撤至90%平1手,剩下的仓位在满足平仓条件时全平。这样写对不对
多止赢:SELL(win2 >= 90 and openprofit >3000, 1,limit,c);

补充内容 (2023-7-14 15:57):
遇到的问题是设置止损平1手不起作用,都是全开全平
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-14 16:01 | 显示全部楼层

你判断的仅仅是当前的浮动盈亏。应该判断下之前最大盈利时候对应的具体金额是多少。
回撤无所谓,就用价差回撤是OK的。
即最大盈利3000块钱后,回撤94% 平仓
多止赢:SELL(win2 >= 94 and maxprofit*MULTIPLIER>3000, 1,limit,c);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
 楼主| 发表于 2023-7-18 00:01 | 显示全部楼层
技术009 发表于 2023-7-14 16:01
你判断的仅仅是当前的浮动盈亏。应该判断下之前最大盈利时候对应的具体金额是多少。
回撤无所谓,就用价 ...

看了好久还是看不懂哪里出问题。应该是有两个问题一是盈利大于3000元知道怎么写。二是开仓2手,达到止盈条件只止盈1手,剩下1手留下等到满足平仓条件(不再平仓不再止盈止损)。老师能不能帮改写一下:
1、开仓2手。
2、盈利超过3000元启动止盈。止盈:最高盈利回撤20%。
3、止盈只平1手,剩下的1手不再止盈待满足平仓条件时全部平仓。

{交易系统}
variable:maxprofit=0;//有仓位时最大获利幅度
平空:SELLSHORT(平空条件  ,0,MARKET);                  
if  开多条件  and holding=0 then
begin
开多:BUY(开多条件 AND HOLDING=0,2,MARKET);          //开多信号
maxprofit:=0;
end  

平多:SELL(平多条件  ,0,MARKET);                       //平多信号
if  开空条件  and holding=0 then
begin
开空:BUYSHORT(开空条件 AND HOLDING=0,2,MARKET);     //开空信号
maxprofit:=0;
end  

//判断当前持仓状态下的最大盈利

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

多止赢:SELL(win2 >= 20 and openprofit > 0, 1,limit,c);

空止赢:SELLSHORT(win2 >= 20 and openprofit > 0, 1,limit,c);


补充内容 (2023-7-18 00:04):
剩下1手留下等到满足平仓条件(不再平仓不再止盈止损)。这里写错了,应该是
剩下1手留下等到满足平仓条件再平仓(不再止盈止损)。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-18 09:19 | 显示全部楼层
[PEL] 复制代码
INPUT:SS(2,1,200,1);
variable:maxprofit=0;//有仓位时最大获利幅度


平空:SELLSHORT(平空条件  ,0,MARKET);                  
if  开多条件  and holding=0 then
begin
开多:BUY(开多条件 AND HOLDING=0,SS,MARKET);          //开多信号
maxprofit:=0;
end  

平多:SELL(平多条件  ,0,MARKET);                       //平多信号
if  开空条件  and holding=0 then
begin
开空:BUYSHORT(开空条件 AND HOLDING=0,SS,MARKET);     //开空信号
maxprofit:=0;
end  

//判断当前持仓状态下的最大盈利

win:=0;
win2:=0;
if holding=SS and enterbars > 0 then
begin
  win:=(c-enterprice); //记录最大盈利的价差
  if win>maxprofit then
    maxprofit:=win;

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

  win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

//最大浮盈超过3000;从最大浮盈回撤20%
多止赢:SELL(win2 >= 20 and  maxprofit*MULTIPLIER>=3000 AND HOLDING=SS,1,limit,c);
空止赢:SELLSHORT(win2 >= 20 and maxprofit*MULTIPLIER>=3000 AND  HOLDING=-SS,1,limit,c);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

95

帖子

95

积分

Rank: 2

等级: 标准版

注册:
2022-11-14
曾用名:
 楼主| 发表于 2023-7-18 10:22 | 显示全部楼层
技术009 发表于 2023-7-18 09:19
[mw_shl_code=pel,true]
INPUT:SS(2,1,200,1);
variable:maxprofit=0;//有仓位时最大获利幅度

谢谢,还麻烦老师帮加个3000元的固定止损
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-7-18 10:57 | 显示全部楼层
就 加二句

if OPENPROFIT<=-3000 then
begin
多止损:sell(1,0,market);
空止损:sellshort(1,0,market);
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-16 21:25 , Processed in 0.093050 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表