金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3305|回复: 9

帮忙实现一个分步出场思路

[复制链接]

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
发表于 2023-4-10 13:11 | 显示全部楼层 |阅读模式
只分一步,就是 第一次进场之后,利润大于30个点,则先平掉一半的仓位,等价格回调到  初次进场的位置,再补回  已平掉的 一半仓位,之后,不再做分步出场,止损设置20个点,止盈设置 50个点

大概思路如图所示

思路图示

思路图示
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-10 14:39 | 显示全部楼层
[PEL] 复制代码
variable:p:=0;
ma5:=ma(c,5);
ma10:=ma(c,10);


majc:=cross(ma5,ma10);
masc:=cross(ma10,ma5);

if c<=ENTERPRICE and holding>0 and p=0 then 补仓:buy(1,1,market);

if  c-ENTERPRICE>=50*mindiff and holding>0 then 
begin 
止盈:sell(1,holding,market);
p:=0;	
end

if c-p>30*mindiff and p<>0 then 
begin 
减仓:sell(1,holding/2,market);
mark:=0;
P:=0;
end 


if masc and holding>0 then  
begin 
指标平多:sell(1,holding,market);	
p:=0;
end 


if  ENTERPRICE-c>=20*mindiff and holding>0  then 
begin 
止损:sell(1,holding,market);
p:=0;	
end

if majc and holding=0 then 
begin 
buy(1,2,market);
p:=AVGENTERPRICE;
end



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

使用道具 举报

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2023-4-11 15:00 | 显示全部楼层
技术009 发表于 2023-4-10 14:39
[mw_shl_code=pel,true]variable:p:=0;
ma5:=ma(c,5);
ma10:=ma(c,10);

怎么样限制 上次 减仓 以来,, 如果符合条件, 只补仓一次,

而且不与其他的 出场条件相冲突,我试着  count( low< enterprice, barslast( mark =0 )  ) = 1 ,这个表述好像不行

我发现在引用上一个 标识点,方面,barslast 函数好像不大适合,有比较好的方法推荐么
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-11 15:17 | 显示全部楼层
再追加一个全局变量的限制:
[PEL] 复制代码
variable:p:=0,mark:=0;
ma5:=ma(c,5);
ma10:=ma(c,10);
 
majc:=cross(ma5,ma10);
masc:=cross(ma10,ma5);
 
if c<=ENTERPRICE and holding>0 and p=0 and mark then 
begin 
补仓:buy(1,1,market);
mark:=0;
end  

if  c-ENTERPRICE>=50*mindiff and holding>0 then
begin
止盈:sell(1,holding,market);
p:=0;   
end
 
if c-p>30*mindiff and p<>0 then
begin
减仓:sell(1,holding/2,market);
mark:=1;
P:=0;
end
 
 
if masc and holding>0 then 
begin
指标平多:sell(1,holding,market);    
p:=0;
mark:=0;
end
 
 
if  ENTERPRICE-c>=20*mindiff and holding>0  then
begin
止损:sell(1,holding,market);
mark:=0;
p:=0;   
end
 
if majc and holding=0 then
begin
buy(1,2,market);
p:=AVGENTERPRICE;
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2023-4-11 15:53 | 显示全部楼层
variable:p:=0,mark:=0,Epri := 0;
ma5:ma(c,5);
ma10:ma(c,10);
  
majc:=cross(ma5,ma10);
masc:=cross(ma10,ma5);
  
if c<=ENTERPRICE and holding>0 and p=0 and mark then
begin
补仓:buy(1,1,market);
mark:=0;
end

if  c-ENTERPRICE>=50*mindiff and holding>0 then
begin
止盈:sell(1,holding,market);
p:=0;   
end
  
if c-p>30*mindiff and p<>0 then
begin
减仓:sell(1,holding/2,market);
mark:=1;
P:=0;
end
  

if  ENTERPRICE-c>=50*mindiff and holding>0  then
begin
止损:sell(1,holding,market);
mark:=0;
p:=0;   
end





// 做了 分批进场

  
   fenpi := ref( high -ma10> 5 * mindiff,1 )  ;
  
  


// 不分批
  
if majc and holding=0 and not( fenpi ) then
begin
buy(1,4,market);
p:=AVGENTERPRICE;
Epri := enterprice ;
end


// 分批

// 初次 进场
if majc and holding=0 and fenpi then
begin
buy(1,1,market);
p:=AVGENTERPRICE;

Epri := enterprice ;

end


// 二次进场

   S2 :=  ref( low < epri-5*mindiff,1 );


if majc and holding=0 and fenpi then
begin
if S2 then 分批: buy(1,3,market);
p:=AVGENTERPRICE;



end

回复

使用道具 举报

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2023-4-11 15:58 | 显示全部楼层
技术009 发表于 2023-4-11 15:17
再追加一个全局变量的限制:
[mw_shl_code=pel,true]variable:p:=0,mark:=0;
ma5:=ma(c,5);

我这边在进场做了个分批,分批的适合 赋值  Epri := enterprice ,是方便我定位第一次进场价格,这样我后面以第一次进场价格来参考 补仓,这样是不是跟 p:=AVGENTERPRICE;  冲突
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-11 16:05 | 显示全部楼层
第一次进场价格 我不是用p记录了么。
p的赋值只在第一次开仓时候赋值的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2023-4-11 16:08 | 显示全部楼层
技术009 发表于 2023-4-11 16:05
第一次进场价格 我不是用p记录了么。
p的赋值只在第一次开仓时候赋值的。

谢谢老师,我先梳理一下看看,最近脑袋有点晕,
回复

使用道具 举报

16

主题

139

帖子

139

积分

Rank: 2

等级: 标准版

注册:
2021-12-10
曾用名:
 楼主| 发表于 2023-4-13 16:38 | 显示全部楼层
技术009 发表于 2023-4-11 16:05
第一次进场价格 我不是用p记录了么。
p的赋值只在第一次开仓时候赋值的。

请问一下老师

1、如何统计最近  50 个 k线 区间内的交易次数?

2、如何统计最近 50 个 K线 交易区间内的亏损次数?

3、如何统计最近 50 个 K线 交易区间内的亏损幅度?

可以帮忙实现这三个思路么

补充内容 (2023-4-13 16:40):
maxseqloss 这个函数怎么用的
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-13 16:48 | 显示全部楼层
系统有提供类似的函数。不过系统是直接统计全部的。但是问题不大,我们直接使用然后和历史值做个差值就行了。
//交易次数
TOTALTRADE-ref(TOTALTRADE,50)

//亏损次数
NUMLOSSTRADE-ref(NUMLOSSTRADE,50)

亏损浮动可以用资产变化做判断:

(asset-ref(asset,50))/ref(asset,50)
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 11:24 , Processed in 0.201255 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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