设为首页收藏本站

 找回密码
 注册
楼主: yk1234
打印 上一主题 下一主题

如何赋值给myentryprice [复制链接]

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25132
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
11#
发表于 2007-10-31 16:19:15 |只看该作者
代码有些乱,帮您排了一下版!  发现一些问题。
我对您的意思理解如下:
1、做日内交易,开盘之后,如果Close < Open ,即价格下跌,就开空仓。
2、将当时的Close价格保存下来,只要一直下跌,就将新的Close保存起来。
3、价格反转,只要上涨超过开仓后的最低价+30,就止损平仓。

如果是这样的一个想法,您的这个写法是完全不对的。
您的需求其实是很简单的,但是应该是在5分钟以下周期应用,如果机器速度不成问题,
最好在Tick上用。这样会形成最精确的委托价格,能够保证成交。

  1. If(MarketPosition==0)
  2. {
  3.         If(Open>Close)
  4.         {
  5.                 SellShort(1,CLose);
  6.                 Value1=Close;
  7.         }
  8. }
  9.        
  10. If(MarketPosition==-1)
  11. {
  12.         If(Close<Value1)
  13.         {
  14.                 Value1=Close;
  15.         }Else If(Close>Value1)       
  16.        {
  17.                 If(Close-Value1>30)
  18.                 {
  19.                       BuyToCover(1,Close);
  20.                 }
  21.         }
  22. }
复制代码
交易开拓者 - 期货程序化与量化系统自动交易领航者

网站已支持在线开通模拟账户功能

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25132
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
12#
发表于 2007-10-31 16:31:07 |只看该作者
稍后等我空闲下来,我会给您写一个初步的例程。

您的理解还有些误区,建议多看看其他帖子里面的例子。
交易开拓者 - 期货程序化与量化系统自动交易领航者

网站已支持在线开通模拟账户功能

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
13#
发表于 2007-10-31 18:42:54 |只看该作者
你的理解,并在#11楼里的翻译,正确到位.

电脑的配置内存为1024MB,双核CPU T7300  2.0G 这样的IBM本本可以吗?

谢谢你的指点

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
14#
发表于 2007-10-31 18:53:33 |只看该作者
原帖由 yk1234 于 2007-10-31 18:42 发表
你的理解,并在#11楼里的翻译,正确到位.

电脑的配置内存为1024MB,双核CPU T7300  2.0G 这样的IBM本本可以吗?

谢谢你的指点


在Tick交易完全没问题!

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
15#
发表于 2007-10-31 19:02:11 |只看该作者
Vars
       
        NumericSeries Value1;     
        NumericSeries Value2;
Begin
       
        If(MarketPosition==0)
{
        If(Open>Close)
        {
                SellShort(1,CLose);
                Value1=Close;
        }
}
        
If(MarketPosition==-1)
{
        If(Close<Value1)
        {
                Value1=Close;
        }Else If(Close>Value1)        
       {
                If(Close-Value1>30)
                {
                      BuyToCover(1,Close);
                }
        }
}
                                                        
End

用程序测试后,结果如附图.
1.为什么没到止损,就平仓?
2.如果想加入多单程序,该如何编写?
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
16#
发表于 2007-10-31 19:14:06 |只看该作者
Vars
       
        NumericSeries Value1;     
        
Begin
               
        If(MarketPosition==0)
{
        If(Open>Close)
        {
                SellShort(1,CLose);
                Value1=Close;
        }
}
        
If(MarketPosition==-1)
{
        If(Close<Value1)
        {
                Value1=Close;
        }Else If(Close>Value1)        
       {
                If(Close-Value1>30)
                {
                      Buy(1,Close);
                }
        }
}
                              
If(MarketPosition==1)
{
        If(Close>Value1)
        {
                Value1=Close;
        }Else If(Close<Value1)        
       {
                If(Value1-Close>30)
                {
                     SellShort(1,Close);
                     Value1=Close;
                }
        }
}               
                                            
End

为什么加入多单程序后,出现如附图的结果,只作了二手买卖?
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
17#
发表于 2007-10-31 19:55:32 |只看该作者
If(MarketPosition==-1)
{
        If(Close<Value1)
        {
                Value1=Close;
        }Else If(Close>Value1)        
       {
                If(Close-Value1>30)
                {
                      BuyToCover(1,Close);
                }
        }
}


close赋值给Value1得用循环语句吗?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
18#
发表于 2007-10-31 20:33:13 |只看该作者
1、新建一个图表,假设m0805,周期为1分钟,也可以为Tick,10S等小周期, 商品设置数据范围:1天以来的。
2、新建一个交易指令yk1234,代码如下:
  1. Params
  2.         Numeric TrailingPoint(30);
  3. Vars
  4.         Numeric todayOpen;
  5.         NumericSeries Value1;
  6. Begin
  7.         If(CurrentBar != 0 ) Value1 = Value1[1];
  8.         todayOpen = Open[CurrentBar];
  9.         If (MarketPosition == 0)
  10.         {
  11.                 If(Close < todayOpen )
  12.                 {
  13.                         SellShort(1,Close);
  14.                         Value1 = Close;
  15.                 }Else If( Close > todayOpen)
  16.                 {
  17.                         Buy(1,Close);
  18.                         Value1 = Close;
  19.                 }
  20.         }Else If(MarketPosition == 1)
  21.         {
  22.                 If(Close > Value1)
  23.                 {
  24.                         Value1 = Close;
  25.                 }Else If(Close < Value1 - TrailingPoint * MinMove * PriceScale)
  26.                 {
  27.                         Sell(0,Close);
  28.                 }
  29.         }Else If(MarketPosition == -1)
  30.         {
  31.                 If(Close < Value1)
  32.                 {
  33.                         Value1 = Close;
  34.                 }Else If(Close > Value1 + TrailingPoint * MinMove * PriceScale)
  35.                 {
  36.                         BuyToCover(0,Close);
  37.                 }
  38.         }
  39. End
复制代码

3、编译成功后插入图表!

第一次开仓/平仓是和您的需求一致的,但是平仓之后怎么后续操作这个问题,还有待商榷,您自己按照这个模板修改吧

[ 本帖最后由 nopain 于 2007-10-31 20:50 编辑 ]

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
19#
发表于 2007-11-1 00:23:20 |只看该作者
If(MarketPosition == 1)
        {
                If(Close > Value1)
                {
                        Value1 = Close;
                }Else If(Close < Value1 - TrailingPoint * MinMove * PriceScale)
                {
                        Sell(0,Close);
                }
         }

1.在上述的程序中的Value1值是当前BAR的最高值吗?

如附图中,假设第一条K线买如多单,到第四条K线时Value1=23130?
High1=23080
High2=23095
High3=23110
High4=23130
到第四条K线时Value1=23130?
到第五条K线时Value1=23130?
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
20#
发表于 2007-11-1 07:27:46 |只看该作者
假设是1分钟周期的话,是开仓后出现的Close的最高值。
在Tick图上使用的话,就没什么区别了。

  1. If(MarketPosition == 1)
  2.         {
  3.                 If(High > Value1)
  4.                 {
  5.                         Value1 = High ;
  6.                 }Else If(Low < Value1 - TrailingPoint * MinMove * PriceScale)
  7.                 {
  8.                         Sell(0,Value1 - (TrailingPoint+1) * MinMove * PriceScale);
  9.                 }
  10.          }
复制代码

[ 本帖最后由 nopain 于 2007-11-1 07:32 编辑 ]

使用道具 举报

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

bottom

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

GMT+8, 2024-5-22 10:18

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部