设为首页收藏本站

 找回密码
 注册
查看: 4489|回复: 14
打印 上一主题 下一主题

实盘开平仓价格问题! [复制链接]

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
跳转到指定楼层
1#
发表于 2014-2-17 12:11:20 |只看该作者 |正序浏览
                HH = Highest(H,N);
                LL = Lowest(L,N);

        If(duo) { Buy(1,HH[1]);BuyToCover(1,HH[1]+1);}
        If(kong) { SellShort(1,LL[1]);Sell(1,LL[1]-1);}



为什么在图表上 开仓价格和平仓价格是一样的
但是在代码中,平仓价应该比开仓价相差1   
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
15#
发表于 2014-2-18 16:53:14 |只看该作者
gtja16300905 发表于 2014-2-18 16:26
就是比如,上一根K线MARKETPOSITION为0,当前K线出现多头开仓信号,MARKETPOSITION应该为1。
但是要在当 ...

没法做到,软件的机制如此 ,不可能受某条件约束而将整个软件的运行机制改变的。

使用道具 举报

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
14#
发表于 2014-2-18 16:26:31 |只看该作者
小米 发表于 2014-2-18 16:18
什么函数的值会较前一根K线没有开平仓信号的函数值发生变化----这句话,我没有理解,请再具体一些。 ...

就是比如,上一根K线MARKETPOSITION为0,当前K线出现多头开仓信号,MARKETPOSITION应该为1。
但是要在当前K线不会再产生变化.请问有什么函数能做到吗?
这是打个比方,因为我知道这时MARKETPOSITION会在0-1之间跳动。

还有就是那个问题啊 MARKETPOTISION支持回溯吗?  比如我想得到MARKETPOSITION[1]。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
13#
发表于 2014-2-18 16:18:51 |只看该作者
gtja16300905 发表于 2014-2-18 15:52
小米,请问MarketPosition支持回溯吗?
用MarketPosition[1]怎么得不到上一根K线MarketPosition的值?

什么函数的值会较前一根K线没有开平仓信号的函数值发生变化----这句话,我没有理解,请再具体一些。

使用道具 举报

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
12#
发表于 2014-2-18 15:52:58 |只看该作者
本帖最后由 gtja16300905 于 2014-2-18 16:04 编辑
小米 发表于 2014-2-17 13:13
将开与平的顺序调换一下,先写平的,再写开的。


小米,请问MarketPosition支持回溯吗?
用MarketPosition[1]怎么得不到上一根K线MarketPosition的值?



还有个问题,就是当图表上出现开平仓信号时,什么函数的值会较前一根K线没有开平仓信号的函数值发生变化吗?因为好像记得看过你的一个帖子,说MarketPosition的值在开平仓的K线上是不断跳动的,直到K线走完。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
11#
发表于 2014-2-18 14:27:46 |只看该作者
cll 发表于 2014-2-18 14:23
平仓延迟反手的模板是根本不需要判断已报单 。你在这模板加的这一句到底起什么作用或者说意义在哪呢?
我 ...

我加这一条是因为我的单子不一定能马上成交,必须先判断当未成交为单0,TICK计数器才开始计数,可是好像在执行的时候,没等我未成交单为0,TICK计数器就开始计数了!

使用道具 举报

Rank: 1

精华
0
UID
127257
积分
11
帖子
9
主题
0
阅读权限
10
注册时间
2011-1-1
最后登录
2021-10-13
10#
发表于 2014-2-18 14:23:41 |只看该作者
gtja16300905 发表于 2014-2-18 13:45
Params
Numeric FastLength(5);
Numeric SlowLength(20);


平仓延迟反手的模板是根本不需要判断已报单 。你在这模板加的这一句到底起什么作用或者说意义在哪呢?
我没有去考虑,建议你自己自己再琢磨一下吧。

使用道具 举报

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
9#
发表于 2014-2-18 13:45:48 |只看该作者
小米 发表于 2014-2-18 12:36
你所说的tick计数器是指公式指南里的平仓延迟反手那个模板吗?
那个模板里是根本没有判断 a_getopenorder ...

Params
Numeric FastLength(5);
Numeric SlowLength(20);
Numeric DelayTicks(5);
Vars
NumericSeries AvgValue1;
NumericSeries AvgValue2;
Numeric LastBarTime;
Numeric TickCounter;
Begin
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
LastBarTime = GetGlobalVar(0);
TickCounter = GetGlobalVar(1);
If(BarStatus == 2 && LastBarTime != Time) // 最新Bar第一次生成时,Tick重新开始计数
{
LastBarTime = Time;
TickCounter = 0;
If(MarketPosition <> 1 && AvgValue1[1] > AvgValue2[1])
{
If(MarketPosition == 0 || BarStatus != 2)
// 无持仓,直接买多仓
// 持空仓且Bar不是实时行情,平空仓,买多仓
{
Buy(1,Open);
}Else  // 持空仓,Bar实时行情,平空仓,通过TickCounter计数,延迟反手
{
BuyToCover(1,Open);
If(TickCounter == 0 && A_GetOpenOrderCount()==0)
{
TickCounter = 1;
}Else If(TickCounter < DelayTicks)
{
TickCounter = TickCounter + 1;
}Else
{
Buy(1,Open);
}
}
}
If(MarketPosition <> -1 && AvgValue1[1] < AvgValue2[1])
{
If(MarketPosition == 0 || BarStatus != 2)
{
SellShort(1,Open);
}Else  // 持多仓且Bar为实时行情,平多,延迟反手
{
Sell(1,Open);
If(TickCounter == 0 && A_GetOpenOrderCount()==0)      
TickCounter = 1;
}Else If(TickCounter < DelayTicks)
{
TickCounter = TickCounter + 1;
}Else
{
SellShort(1,Open);
}
}
}
SetGlobalVar(0,LastBarTime);
SetGlobalVar(1,TickCounter);
End



原来是这样的 ,但是我在标红的地方加入了一个这样的条件,但是好像这个条件完全不起作用啊,没等我未成交单为0,TICK计数器就开始计数了!
麻烦小米了!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2014-2-18 12:36:51 |只看该作者
本帖最后由 小米 于 2014-2-18 12:38 编辑
gtja16300905 发表于 2014-2-18 12:07
哦  但是我发现延迟反手中不是有A_GetOpenOrderCount()==0  
当未成交单等于0,TICK计数器才会开始计数 ...


你所说的tick计数器是指公式指南里的平仓延迟反手那个模板吗?
那个模板里是根本没有判断 a_getopenordercount的呀
所以这个计数器只是从平仓单发出时开始时计数,与其它的无关。
如果平仓单 不能在5个tick内成交,在5个tick后就会下反手单 。这样,仍会提示资金不足。
所以,保证平仓单 能及时地成交是使用这个模板控制的一个重要因素 。

使用道具 举报

Rank: 1

精华
0
UID
175564
积分
20
帖子
11
主题
3
阅读权限
10
注册时间
2013-11-12
最后登录
2021-2-25
7#
发表于 2014-2-18 12:07:54 |只看该作者
小米 发表于 2014-2-18 09:07
指南中的平仓延迟反手是延迟了5个tick才反手开仓的,相当于平与开之间间隔了2.5秒左右 。
如果平仓能及时 ...

哦  但是我发现延迟反手中不是有A_GetOpenOrderCount()==0  
当未成交单等于0,TICK计数器才会开始计数吗?那按这样说不是就算我的单子不能马上成交,应该也不会有影响吗?   麻烦小米了!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-24 03:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部