金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 阿白

请帮忙编写公式,谢谢

[复制链接]

6

主题

39

帖子

39

积分

Rank: 1

等级: 新手上路

注册:
2021-6-11
曾用名:
 楼主| 发表于 2021-6-30 21:00 | 显示全部楼层
技术009 发表于 2021-6-30 14:10
你这里应该还是没控制好条件一致。你代码发下 我看下。

麻烦您啦,谢谢

INPUT : T5(5,3,8,1) ;
INPUT : ATRLEN(10,5,15,1) ;
VARIABLE:mark:=0,x:=0,ct:=0;//mark是判断盈亏情况的;X是记录开仓时候的2*N;ct记录加仓次数
  
N : REF(MA(TR,ATRLEN),1) ;
手数:=FLOOR(ASSET/100/N/MULTIPLIER);     //下单手数
  加仓手数:= ENTERVOL/2  ;

A:=CLOSE>REF(HHV(HIGH,T5),1);          //开多平空条件
B:=CLOSE<REF(LLV(LOW,T5),1);          //开空平多条件
AA:=COUNT(A,BARSLAST(B))=1;            //开多平空条件
BB:=COUNT(B,BARSLAST(A))=1;            //开空平多条件



平空:=SELLSHORT(A AND AA,0,nextopen),;                  //平空信号
开多条件:=A  AND AA ;          //开多信号
平多条件:B AND BB,;                       //平多信号
开空:=BUYSHORT(B AND HOLDING=0 AND BB,手数,nextopen);     //开空信号


if 开多条件 and holding=0 then
begin
BUY(1,手数,nextopen);   
x:=N;//在开仓时候纪录这时候的N的值
end


if OPENPROFIT>=2 * X  then mark:=1;
if OPENPROFIT < 0 then mark:=0;
  
if mark and c<AVGENTERPRICE   then
begin
SELL( 1 ,0,marketr);  //多保本   
dbb:=0;
        DRAWTEXT(dbb=0 ,HIGH ,‘多保本’ );
x:=0;
mark:=0;
ct:=0;//平仓时候也重置限制加仓次数的全局变量            

end
  
  
if 平多条件 and holding>0 then
begin
SELL( 1 ,0,marketr);
mark:=0;
x:=0;     
ct:=0;//平仓时候也重置限制加仓次数的全局变量   
end

if   holding>0 and ct=2 and C- ENTERPRICE>2*X  then
begin
buy(1,加仓手数,nextopen);   
ct:=ct+1;//加仓时候全局变量值累加一次
end

if   holding>0 and ct=1 and C- ENTERPRICE >2*X  then
begin
buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end

if   holding>0 and ct=0 and C- ENTERPRICE > 2*X  then
begin
buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end



CONTINUELINE@ 资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓均价:AVGENTERPRICE, LINETHICK0 ,COLORRED;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;


回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-1 09:01 | 显示全部楼层
[PEL] 复制代码
INPUT : T5(5,3,8,1) ;
INPUT : ATRLEN(10,5,15,1) ;
VARIABLE:mark:=0,x:=0,ct:=0;//mark是判断盈亏情况的;X是记录开仓时候的2*N;ct记录加仓次数
  
N : REF(MA(TR,ATRLEN),1) ;
手数:=FLOOR(ASSET/100/N/MULTIPLIER);     //下单手数
加仓手数:= ENTERVOL/2  ;

A:=CLOSE>REF(HHV(HIGH,T5),1);          //开多平空条件
B:=CLOSE<REF(LLV(LOW,T5),1);          //开空平多条件
AA:=COUNT(A,BARSLAST(B))=1;            //开多平空条件
BB:=COUNT(B,BARSLAST(A))=1;            //开空平多条件



平空:=SELLSHORT(A AND AA,0,nextopen),;                  //平空信号
开多条件:=A  AND AA ;          //开多信号
平多条件:B AND BB,;                       //平多信号
开空:=BUYSHORT(B AND HOLDING=0 AND BB,手数,nextopen);     //开空信号


if 开多条件 and holding=0 then
begin
BUY(1,手数,nextopen);   
x:=N;//在开仓时候纪录这时候的N的值
end


if OPENPROFIT>=2 * X  then mark:=1;
if OPENPROFIT < 0 then mark:=0;
 

if mark and c<AVGENTERPRICE and holding>0  then
begin
多保本:SELL( 1 ,0,marketr);  //多保本   
dbb:=0;
x:=0;
mark:=0;
ct:=0;//平仓时候也重置限制加仓次数的全局变量            
end
  
  
if 平多条件 and holding>0 then
begin
SELL( 1 ,0,marketr);
mark:=0;
x:=0;     
ct:=0;//平仓时候也重置限制加仓次数的全局变量   
end

if   holding>0 and ct=2 and C- ENTERPRICE>2*X  then
begin
加仓3:buy(1,加仓手数,nextopen);   
ct:=ct+1;//加仓时候全局变量值累加一次
end

if   holding>0 and ct=1 and C- ENTERPRICE >2*X  then
begin
加仓2:buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end

if   holding>0 and ct=0 and C- ENTERPRICE > 2*X  then
begin
加仓1:buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end



CONTINUELINE@ 资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓均价:AVGENTERPRICE, LINETHICK0 ,COLORRED;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

39

帖子

39

积分

Rank: 1

等级: 新手上路

注册:
2021-6-11
曾用名:
 楼主| 发表于 2021-7-2 07:04 | 显示全部楼层
技术009 发表于 2021-7-1 09:01
[mw_shl_code=pel,true]INPUT : T5(5,3,8,1) ;
INPUT : ATRLEN(10,5,15,1) ;
VARIABLE:mark:=0,x:=0,ct:= ...

谢谢!老师。
试了一下,保本损好像还没有起作用,也没有任何信号(将保本损的2N变为了1N,正常应该很容易保本损)。请帮忙再查找一下问题吧
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-2 08:39 | 显示全部楼层
怎么会没有信号?


保本止损的前提是盈利到一定程度,然后回落到成本价,这个没理解错吧。?你找一个符合条件但是没有执行的位置给我看下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

6

主题

39

帖子

39

积分

Rank: 1

等级: 新手上路

注册:
2021-6-11
曾用名:
 楼主| 发表于 2021-7-2 12:51 来自手机 | 显示全部楼层
技术009 发表于 2021-7-2 08:39
怎么会没有信号?



老师,我查了一下,平仓记录都是由平多条件(突破5日低点)造成的。
就拿白银连续的5月6日的开仓来说,当时建仓价格是5668,N是114,按浮盈2N来说,也就是到5668+114*2=5896点(5月17日的高点就达到了),以后不管加仓几次再回撤到持仓均价就保本损了,5月18因浮盈加仓,均价是5796。也就是回撤到5796就需启动保本损,正常5月20低点就达到了,但没有信号。直到6月4日才平仓(是突破5点低点的平仓信号)。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-7-2 14:14 | 显示全部楼层
本帖最后由 技术009 于 2021-7-2 14:22 编辑

有个地方前面沟通出问题了。原来你说的是点数,我是按照实际价差对应的实际利润那种方式来的。然后就是图表上盈亏我用的是收盘价计算的。所以实际保本止损我这边显示应该是在21号。你这边再看下。

[PEL] 复制代码
INPUT : T5(5,3,8,1) ;
INPUT : ATRLEN(10,5,15,1) ;
VARIABLE:mark:=0,x:=0,ct:=0;//mark是判断盈亏情况的;X是记录开仓时候的2*N;ct记录加仓次数
   
N : REF(MA(TR,ATRLEN),1) ;
手数:=FLOOR(ASSET/100/N/MULTIPLIER);     //下单手数
加仓手数:= ENTERVOL/2  ;
 
A:=CLOSE>REF(HHV(HIGH,T5),1);          //开多平空条件
B:=CLOSE<REF(LLV(LOW,T5),1);          //开空平多条件
AA:=COUNT(A,BARSLAST(B))=1;            //开多平空条件
BB:=COUNT(B,BARSLAST(A))=1;            //开空平多条件
 
 
 
平空:=SELLSHORT(A AND AA,0,nextopen),;                  //平空信号
开多条件:=A  AND AA ;          //开多信号
平多条件:B AND BB,;                       //平多信号
开空:BUYSHORT(B AND HOLDING=0 AND BB,手数,nextopen);     //开空信号
 
 
if 开多条件 and holding=0 then
begin
BUY(1,手数,nextopen);   
x:=N;//在开仓时候纪录这时候的N的值
end
 
 
if OPENPROFIT/MULTIPLIER/holding>=2 * X and holding<>0  then mark:=1;



if mark and c<AVGENTERPRICE and holding>0  then
begin
多保本:SELL( 1 ,0,marketr);  //多保本   
dbb:=0;
x:=0;
mark:=0;
ct:=0;//平仓时候也重置限制加仓次数的全局变量            
end
   
   
if 平多条件 and holding>0 then
begin
SELL( 1 ,0,marketr);
mark:=0;
x:=0;     
ct:=0;//平仓时候也重置限制加仓次数的全局变量   
end
 
if   holding>0 and ct=2 and C- ENTERPRICE>2*X  then
begin
加仓3:buy(1,加仓手数,nextopen);   
ct:=ct+1;//加仓时候全局变量值累加一次
end
 
if   holding>0 and ct=1 and C- ENTERPRICE >2*X  then
begin
加仓2:buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end
 
if   holding>0 and ct=0 and C- ENTERPRICE > 2*X  then
begin
加仓1:buy(1,加仓手数,nextopen);
ct:=ct+1;//加仓时候全局变量值累加一次   
end
 
 
 
资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓均价:AVGENTERPRICE, LINETHICK0 ,COLORRED;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;

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

使用道具 举报

6

主题

39

帖子

39

积分

Rank: 1

等级: 新手上路

注册:
2021-6-11
曾用名:
 楼主| 发表于 2021-7-5 17:23 | 显示全部楼层
技术009 发表于 2021-7-2 14:14
有个地方前面沟通出问题了。原来你说的是点数,我是按照实际价差对应的实际利润那种方式来的。然后就是图表 ...

谢谢,我试一下
回复

使用道具 举报

12

主题

56

帖子

56

积分

等级: 免费版

注册:
2024-4-26
曾用名:
发表于 2024-5-27 08:44 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-28 04:43 , Processed in 0.110369 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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