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


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

   

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


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

主题:请老师帮助写代码

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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
请老师帮助写代码  发帖心情 Post By:2016/3/28 13:00:15    Post IP:49.69.230.152[显示全部帖子]

请老师帮助,

写一句加仓代码,

   买开仓以来rsi没有出现大于65的周期内收盘价上穿5日均线加仓。也就是说开多仓后,rsi没有出现过大于65,在这个周期内,只要收盘价上穿5日均线就加仓,当rsi一出现大于65后,再上穿5日均线就不再加仓了,

写一句平仓代码,

     买开仓以来macd指标中DIFF出现二次下穿DEA,并且第一次DIFF下穿DEA之前的高点大于第二次下穿DEA之前DEA的高点,平多仓,                    谢谢!


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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/28 14:25:30    Post IP:49.69.230.152[显示全部帖子]

LC:=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),32,1)/SMA(ABS(CLOSE-LC),32,1)*100;

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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/28 15:53:22    Post IP:49.69.230.152[显示全部帖子]

老师

ref(hhv(h,enterbars+1),nn2)>ref(h,nn1)这个是取的k线最高价,要求取DIFF下穿之前形成的DIFF最高值,


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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/28 16:27:44    Post IP:49.69.230.152[显示全部帖子]

老师要加一句,开多周期内,

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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/29 10:16:10    Post IP:49.69.230.152[显示全部帖子]

LC:=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),32,1)/SMA(ABS(CLOSE-LC),32,1)*100;
ma5:=ma(c,5);
if rsi<65 and cross(close,ma5) then buy(1,1,marketr);***********这个没达到限止上65以后再小于65收盘价上穿5曰均线不开仓。


老师,在买开仓周期内rsi没有出现大于65的周期内收盘价上穿5日均线加仓。也就是说开多仓后,rsi没有出现过大于65,在这个周期内,只要收盘价上穿5日均线就加仓,当rsi一出现大于65后,在回到65以下,收盘价再上穿5日均线就不开仓了,也就是说开多仓rsi初次65以下可以加仓,当大65以后再小于65就不能开仓了,


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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/29 10:31:57    Post IP:49.69.230.152[显示全部帖子]

开仓后,RSI直接大于65了,那就不加仓了,

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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/29 10:59:56    Post IP:49.69.230.152[显示全部帖子]

老师,不用全局变量函数,用COUNT,EXIST等统计函数,能不能写一下,谢谢!

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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/29 11:52:56    Post IP:49.69.230.152[显示全部帖子]

variable:nj=0,bj=0;

n65:=65;

//*****************************************************************************************开多
if 无仓开多 and holding=0 then  begin  // 开多条件
无仓多:BUY(1,DD,limitr,close),ORDERQUEUE;
numbuy:=DD;
nj:=0;
bj:=0;
end
//*****************************************************************************************加仓
if holding>0 and rsi<n65 then nj:=nj+1;
if holding>0 and rsi>n65 then bj:=1;
if 加多仓 and bj=0 and nj=1 and ref(nj=0,1) then buy(1,1,limitr,close);

 

老师,帮我查一下,怎么一次也不加仓

 


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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/29 14:48:32    Post IP:49.69.230.152[显示全部帖子]

老师我这样写的行不行,

    开仓历时1:ENTERBARS,NODRAW,COLORWHITE;

    BKN:EXIST(RSI>60,开仓历时1),NODRAW,COLORWHITE;

   if 加多仓 and BKN=0  then buy(1,1,limitr,close);


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


加好友 发短信
等级:论坛游侠 帖子:548 积分:0 威望:0 精华:0 注册:2015/12/24 22:12:45
  发帖心情 Post By:2016/3/30 22:14:26    Post IP:49.69.196.231[显示全部帖子]

老师好,开仓以后,有多种方法止盈,

             1,如何限止每种方法满足止盈条件只能止盈一次,

             2,每种方法满足止盈条件只能止盈一次的同时,如何确保留有1手以上的仓单,等满足平仓条件才能平,

  //------------------------------------止盈1
if 平空止盈1  then  begin
取空盈1手数:ABS(holding),NODRAW;//取得开空手数,
 Sg11:=IF(取空盈1手数<10,1,IF(取空盈1手数>=10 AND 取空盈1手数<18,2,IF(取空盈1手数>=18,3,NODRAW)));
止空盈1:SELLSHORT(1,Sg11,limitr,close);
 end 
//------------------------------------止盈2
if 平空止盈2 then  begin
取空盈2手数:ABS(holding),NODRAW;//取得开空手数,
Sg22:=IF(取空盈2手数<10,1,IF(取空盈2手数>=10 AND 取空盈2手数<18,2,IF(取空盈2手数>=18,3,NODRAW)));
底盈2:SELLSHORT(1,Sg22 ,limitr,close);
  end 
//------------------------------------止盈3
if 平空止盈3 then begin
取空盈3手数:ABS(holding),NODRAW;//取得开空手数,
Sg33:=IF(取空盈3手数<10,1,IF(取空盈3手数>=10 AND 取空盈3手数<18,2,IF(取空盈3手数>=18,3,NODRAW)));
 空止盈3:SELLSHORT(1,Sg33,limitr,close);
   end
//------------------------------------止盈4
BKN3:=COUNT(abs(holding)>=16 and abs(holding)<=20   and ENTERPRICE-c>=x3*MINDIFF,开仓历时1);  
 if BKN3=1 and abs(holding)>=16 and abs(holding)<=20   and ENTERPRICE-c>=x3*MINDIFF then begin
  取得持仓量:=ABS(holding),NODRAW;//取得开空手数,
空6止盈:SELLSHORT(1,3,marketr,ENTERPRICE-MINDIFF*x3);
end
//-----------------------------------------------------------满足条件平空仓
if 平空仓 AND holding<0 then begin
平空:sellshort(1,holding ,limitr,close);
end 
//*****************************************************************************************开多
if 无仓开多 and holding=0 then  begin  //or 开多条件

S1S1:=IF(SS1<10,SS1+2,IF(SS1>=10 AND SS1<20,SS1+1,IF(SS1>=20,SS1,NODRAW)));
DD:=IF(A,手数,IF(B,SS1,IF(CC,S1S1,NODRAW)));
无仓多:BUY(1,DD,limitr,close),ORDERQUEUE;
numbuy:=DD;
end
//*****************************************************************************************加多仓

if 加多仓1  then 加多:buy(1,1,limitr,close);
//*****************************************************************************平多
//------------------------------------止盈1
if 平多止盈1 AND HOLDING>0 then  begin
取多盈1持仓:HOLDING,NODRAW;
bg11:=IF(取多盈1持仓<10,1,IF(取多盈1持仓>=10 AND 取多盈1持仓<18,2,IF(取多盈1持仓>=18,3,NODRAW)));
止多盈1:SELL( 1,bg11,limitr,close);
end
//------------------------------------止盈2
if 平多止盈2 then begin
取多盈2持仓:HOLDING,NODRAW;
bg22:=IF(取多盈2持仓<10,1,IF(取多盈2持仓>=10 AND 取多盈2持仓<18,2,IF(取多盈2持仓>=18,3,NODRAW)));
顶盈2:SELL( 1,bg22,limitr,close);
end
//------------------------------------止盈3
if 平多止盈3 then begin
取多盈3持仓:HOLDING,NODRAW;
bg33:=IF(取多盈3持仓<10,1,IF(取多盈3持仓>=10 AND 取多盈3持仓<18,2,IF(取多盈3持仓>=18,3,NODRAW)));
多止盈3:SELL( 1,bg33,limitr,close);
 end
//-----------------------------------止盈4

SKN3:=COUNT( holding>=16 and holding<=20 and C-ENTERPRICE>=x3*MINDIFF,开仓历时1);
if SKN3=1 and holding>=16 and holding<=20 and C-ENTERPRICE>=x3*MINDIFF then begin
取多盈5持仓:=holding/2,NODRAW;//取得开空手数
多6止盈:SELL( 1,3,marketr,ENTERPRICE+MINDIFF*x3);
end

//------------------------------------------------------------------满足条件平多仓
if 平多仓 AND holding>0 then begin
平多:SELL(1,holding,limitr,close),ORDERQUEUE;

end
//***********************************************************************************************开空
if 无仓开空 then  begin //  or 开空条件
 DD1:=IF(A1,手数,IF(B1,SS111,IF(CC1,S1S111,NODRAW)));
DD10:DD1,NODRAW;
无仓空:BUYSHORT(holding=0,DD1,limitr,close),ORDERQUEUE;
 numbuy:=DD1;
end   
//*****************************************************************************************加空
 if 加空仓1 then 加空:BUYSHORT(1,1,limitr,close),ORDERQUEUE;

 


 回到顶部
总数 34 1 2 3 4 下一页