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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]关于减仓补仓

   

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


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

主题:[求助]关于减仓补仓

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
[求助]关于减仓补仓  发帖心情 Post By:2013/11/20 10:12:41    Post IP:180.157.223.74[显示全部帖子]

    我想实现这样一个功能,即:
1. 在每天收盘前的最后一分钟之初,即进入15:15分的那一瞬间,平掉一半仓位;
2. 在每天开盘的第一分钟(即开盘的那一瞬间),如果开盘价与昨日收盘价相差不到0.5%,就立即补上前日所减之仓位。
    我写了如下的代码,但反复测试都不准确,一个是实际的减仓和补仓量很混乱,与意图不符,另一个是时间上好像不太准确。敬请帮助检查一下,看看问题在哪里?拜托拜托

T1:=time>151400 and time<=151500;
T2:=time>=091500 and time<=091600;
减仓量:=holding/2;
当日开盘价:=valuewhen(date<>ref(date,1),open);
前日收盘价:=ref(close,1);
开盘差:=当日开盘价/前日收盘价;
补仓条件:=开盘差<=1.005 and 开盘差>=0.995;
昨日持仓量:=ref(holding,1);

if T1 then
  begin
  sell(holding>0,减仓量,marketr);
  sellshort(holding<0,减仓量,marketr);
  end

if T2 and 补仓条件 then
  begin
  buy(holding>0,昨日持仓量,thisclose);
  buyshort(holding<0,昨日持仓量,thisclose);
  end


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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/20 10:14:15    Post IP:180.157.223.74[显示全部帖子]

对了,补充一下,模型是1分钟、固定1秒轮询……

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/20 11:03:16    Post IP:180.157.223.74[显示全部帖子]

if time=151500 then sell(1,holding/2,market);  
1. 这里是不是用marketr更好?本周期么,过了151500可就没机会平了?
2. 括号里的1是指什么?

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/20 12:55:21    Post IP:180.157.223.74[显示全部帖子]

if time=151500 then sell(1,holding/2,market);
buy(1,r1,market)

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/22 15:23:39    Post IP:222.64.243.105[显示全部帖子]

关于前几天你指教的这个问题,我按你的思路实施了,具体这么写的:

if time=151445 then 
  begin
  sell(holding>0,holding/2,marketr);
  sellshort(holding<0,holding/2,marketr);
  end

我用两个不同的模拟账户测试,另一个是if time=151500 then...但是这两天发现都没有如预期的减仓……请帮看看问题可能出在哪儿?

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/22 15:44:23    Post IP:222.64.243.105[显示全部帖子]

固定1秒轮询呀……

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/22 15:50:58    Post IP:222.64.243.105[显示全部帖子]

其中if time=151500那个,今天最后收盘最后一根K线上显示了平多信号,但账户未实际平仓;而if time=151445那个则图表上连平多信号都没有……

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/22 16:04:42    Post IP:222.64.243.105[显示全部帖子]

日志里没有最后一根K线的任何记录啊……

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/22 16:45:19    Post IP:222.64.243.105[显示全部帖子]

你说的日志不是指这个
图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看
吗?

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


加好友 发短信
等级:黑侠 帖子:755 积分:6 威望:0 精华:0 注册:2013/5/16 5:52:00
  发帖心情 Post By:2013/11/26 15:44:16    Post IP:222.64.244.228[显示全部帖子]

就我这个问题而言,如果换成“与昨日收盘时的资产比较”(1秒轮询),是否可以这样改?

variable:X=0;                                

asset0:=ref(asset,todaybar);                  //昨日收盘时的资产

if (asset0-ref(asset,1))/asset0>Y*0.01 then 

  begin

  sellshort(holding<0,holding,marketr);

  sell(holding>0,holding,marketr);

  X:=1;

  end


 回到顶部
总数 16 1 2 下一页