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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请求帮助改写

   

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


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

主题:请求帮助改写

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


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/12/5 20:37:05    Post IP:180.126.4.171[只看该作者]

谢塮老师,ok!

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


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/12/5 23:17:48    Post IP:180.126.4.171[只看该作者]

老师好,我用三个取值来决定下次开仓的手数用的,发觉金字塔与文华有所不同,现将30楼的改了一下,发觉取值又不对了,
         我的策略是收盘价上穿60均线立即平空仓取这三个值,进行比较后,决定手数,开多仓,
                       收盘价下穿60均线立即平多仓取这三个值再进行比较后,决定手数,开空仓,
        请老师拫据策略改一下,
INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:MA(CLOSE,m);
variable:a2=0,a3=0;
variable:num=0;//记录开仓时的k序号
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件

if 平空开多条件 then  begin
SELLSHORT(1,手数,MARKETr);
num:=barpos;
end
a1:=NUMPROFIT(1);          
a2:=ref(a3,barpos-num);    
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);    
b1:a1,NODRAW;
b2:a2,NODRAW;
b3:a3,NODRAW;

if 平空开多条件 then  begin
BUY(holding=0,手数,MARKETr);
num:=barpos;
end

if 平多开空条件 then begin
SELL(平多开空条件,手数,MARKETr);
num:=barpos;
end
a1:=NUMPROFIT(1);          
a2:=ref(a3,barpos-num);    
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);    
b11:a1,NODRAW;
b22:a2,NODRAW;
b33:a3,NODRAW;

if 平多开空条件 then begin
BUYSHORT(holding=0,手数,MARKETr);
num:=barpos;
end

          

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/12/6 17:58:50    Post IP:116.216.0.51[只看该作者]

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:=MA(CLOSE,m);
variable:a1=0,a2=0,a3=0;
variable:num=0;//记录开仓时的k序号
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件


if 平空开多条件 then  begin
SELLSHORT(1,手数,MARKETr);
BUY(holding=0,手数,MARKETr);
num:=barpos;
end

if 平多开空条件 then begin
SELL(平多开空条件,手数,MARKETr);
BUYSHORT(holding=0,手数,MARKETr);
num:=barpos;
end
a1:=NUMPROFIT(1);   
  a2:=ref(a3,barpos-num);;
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);
      
 
b1:a1,NODRAW;
b2:a2,NODRAW;
b3:a3,NODRAW;

本次平仓盈亏值 = b1

前一周期累计亏损值 = b2

本次平仓亏损累计值  =b3

你说不对,请说明下b2对应上次平仓时候的一个b3,b3对应上一次平仓时候的b2然后加上本次的一个b1,从图上看是否满足了?另外这个是你前面29楼说明的一个对应关系是否正确


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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/6 18:24:11    Post IP:180.126.4.171[只看该作者]

老师好, 我的策略是收盘价上穿60均线立即平掉所有的空单持仓,并取得平空单的,本次平仓盈亏值前一周期累计亏损本次平仓亏损累计值,将这三个值,进行组合后有三种条件AABB,CC,满足不同的条件,取不同的手数开多仓,
                      当 收盘价下穿60均线立即平掉所有的多单持仓,并再次取得平多单的,本次平仓盈亏值前一周期累计亏损本次平仓亏损累计值,将这三个值,进行组合后有三种条件AABB,CC,满足不同的条件,取不同的手数开空仓,
    结合30楼的取三个值框架,加入我的策略,发觉三个取值的结果不对了,是否是结构框架存在问题,请老师按照我的思路,改写框架并能平空单与平多单多都取到正确的三个值,并且有连续性,
INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:MA(CLOSE,m);
variable:a2=0,a3=0;
variable:num=0;//记录开仓时的k序号
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件
if 平空开多条件 then  begin
SELLSHORT(1,holding,MARKETr);        
num:=barpos;
end
a1:=NUMPROFIT(1);         
a2:=ref(a3,barpos-num);   
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);   
b1:a1,NODRAW;
b2:a2,NODRAW;
b3:a3,NODRAW;
SS1://取得平空仓前的多仓持仓手数,
AA:=//B1.B2.B3 组合等于AA
BB:=//B1.B2.B3 组合等于BB        
CC:=//B1.B2.B3 组合等于CC
DD:=IF(AA,手数,IF(BB,SS1,IF(CC,手数+1,返回空值)))
if 平空开多条件 then  begin
BUY(holding=0,DD,MARKETr);
num:=barpos;
end
if 平多开空条件 then begin
SELL(平多开空条件,holding,MARKETr);
num:=barpos;
end
a1:=NUMPROFIT(1);         
a2:=ref(a3,barpos-num);   
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);   
b11:a1,NODRAW;
b22:a2,NODRAW;
b33:a3,NODRAW;
SS1://取得平多仓前的空仓持仓手数,
AA1:=//B1.B2.B3 组合等于AA
BB1:=//B1.B2.B3 组合等于BB        
CC1:=//B1.B2.B3 组合等于CC
DD1:=IF(AA,手数,IF(BB,SS1,IF(CC,手数+1,返回空值)))
if 平多开空条件 then begin
BUYSHORT(holding=0,DD1,MARKETr);
num:=barpos;
end
 

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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/6 18:42:13    Post IP:180.126.4.171[只看该作者]

老师,30楼与33楼取三个值是正确的,加入我的新策略,己将原框架分开了,因策略要求,一平仓即刻取到三个值,然后再开仓,我将取值分笔加入开多仓与开空仓之前来取值了,形成了34楼的框架取值,发生错误,请老师按34楼的思路,写框架并取值,谢谢!

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/12/7 9:33:22    Post IP:58.246.57.26[只看该作者]

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:=MA(CLOSE,m);
variable:a2=0,a3=0;
variable:num=0;//记录开仓时的k序号
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件

if 平空开多条件 then  begin
SELLSHORT(1,holding,MARKETr);        
end

a1:=NUMPROFIT(1);         
a2:=ref(a3,barpos-num);   
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);   
b1:a1,NODRAW;
b2:a2,NODRAW;
b3:a3,NODRAW;


if 平空开多条件 then  begin
BUY(holding=0,1,MARKETr);
end

if 平多开空条件 then begin
SELL(1,holding,MARKETr);
end

a1:=NUMPROFIT(1);         
a2:=ref(a3,barpos-num);   
a3:=if(ref(a2,barpos-num)+a1<0,ref(a2,barpos-num)+a1,0);   
b11:a1,NODRAW;
b22:a2,NODRAW;
b33:a3,NODRAW;


if 平多开空条件 then begin
BUYSHORT(holding=0,1,MARKETr);
end

if (平多开空条件 or 平空开多条件) and holding<>0 then num:=barpos;


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


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/12/7 14:09:22    Post IP:49.83.162.249[只看该作者]

老师如何截图

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


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/8/13 23:11:14
  发帖心情 Post By:2015/12/7 14:53:55    Post IP:49.83.162.249[只看该作者]

老师,36楼,取值不对,请看一下,谢谢!

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/12/7 16:13:47    Post IP:58.246.57.26[只看该作者]

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:=MA(CLOSE,m);
variable:a1=0,a2=0,a3=0;

手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件

if 平空开多条件 then  begin
SELLSHORT(1,holding,MARKETr);
BUY(holding=0,1,MARKETr);      
end

if 平多开空条件 then begin
SELL(1,holding,MARKETr);
BUYSHORT(holding=0,1,MARKETr);
end

if (平多开空条件 or 平空开多条件) and holding<>0 then
begin
a1:=NUMPROFIT(1);        
a2:=a3;
end
a3:=if(a2+a1<0,a2+a1,0);  

b1:a1,NODRAW;
b2:a2,NODRAW;
b3:a3,NODRAW;

 


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/12/7 16:14:32    Post IP:58.246.57.26[只看该作者]

运行在if00日线图上得到的结果如下

B1: 66180.406          B2: 0.000             B3: 0.000
B1: -10186.386         B2: 0.000             B3: -10186.386
B1: -16882.115         B2: -10186.386     B3: -27068.501
B1: 575.510             B2: -27068.501      B3: -26492.991
B1: -22521.740        B2: -26492.991     B3: -49014.731
B1: -4357.410           B2: -49014.731     B3: -53372.141


 回到顶部
总数 141 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..15