Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共26 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

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

1楼
skylands 发表于:2013/11/20 10:12:41
    我想实现这样一个功能,即:
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

2楼
skylands 发表于:2013/11/20 10:14:15
对了,补充一下,模型是1分钟、固定1秒轮询……
3楼
jinzhe 发表于:2013/11/20 10:22:29
1. 在每天收盘前的最后一分钟之初,即进入15:15分的那一瞬间,平掉一半仓位;
2. 在每天开盘的第一分钟(即开盘的那一瞬间),如果开盘价与昨日收盘价相差不到0.5%,就立即补上前日所减之仓位。

 

 

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

r1:=ref(holding,1);

if todaybar=1 and abs((o-ref(close,1))/ref(close,1))<0.005 then buy(1,r1,market)

4楼
skylands 发表于:2013/11/20 11:03:16
if time=151500 then sell(1,holding/2,market);  
1. 这里是不是用marketr更好?本周期么,过了151500可就没机会平了?
2. 括号里的1是指什么?
5楼
jinzhe 发表于:2013/11/20 11:05:37

1.market改成limitr,open

2.哪里的1?

6楼
skylands 发表于:2013/11/20 12:55:21
if time=151500 then sell(1,holding/2,market);
buy(1,r1,market)
7楼
jinzhe 发表于:2013/11/20 13:22:45
表示无条件满足
8楼
skylands 发表于:2013/11/22 15:23:39
关于前几天你指教的这个问题,我按你的思路实施了,具体这么写的:

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

我用两个不同的模拟账户测试,另一个是if time=151500 then...但是这两天发现都没有如预期的减仓……请帮看看问题可能出在哪儿?
9楼
jinzhe 发表于:2013/11/22 15:43:34
用走完k线模式的?
10楼
skylands 发表于:2013/11/22 15:44:23
固定1秒轮询呀……
共26 条记录, 每页显示 10 条, 页签: [1] [2][3]


Powered By Dvbbs Version 8.3.0
Processed in 0.04797 s, 3 queries.