设为首页收藏本站

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

求赋值函数? [复制链接]

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
跳转到指定楼层
1#
发表于 2007-12-19 09:56:17 |只看该作者 |倒序浏览
If (Condition)
   {
     将该周期及前一周期数值设为1
   } Esle
   {
    为0
   }

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2007-12-19 10:58:15 |只看该作者
只能修改当前周期的值,不能修改前一周期的值,
否则就变成了未来的数据会影响已经出现过的判断或趋势。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
3#
发表于 2007-12-23 20:38:48 |只看该作者
//------------------------------------------------------------------------
// 简称: Backset
// 名称: 向前赋值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------

Params
    NumericSeries Price(1);
    Numeric Length(2);
Vars
        NumericSeries MyVal;
        Numeric  i;
Begin
        For  i=0 To Length-1
         {
           If(Price>Price[1] )
        {
                        MyVal==1;
                 }Else
                {
                        MyVal[ i ] ==0;
                 }
      }
        Return    MyVal;
End

//------------------------------------------------------------------------
// 编译版本        GS2004.06.12
// 用户版本        2007/12/19 09:44
// 版权所有        yk1234
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

编译通过,但调用通不行.

Params
    Numeric Length(3);
Vars
    NumericSeries  Num1;
    NumericSeries  Num2;       
Begin
    Num1=Backset(High[2]==Highest(High,5),Length);
       

End

[ 本帖最后由 nopain 于 2007-12-23 22:07 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2007-12-23 22:08:32 |只看该作者
1、不能像前赋值。所以MyVal[ i ] ==0;的写法是错误的。
2、函数的第一个参数应该是布尔型。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
5#
发表于 2007-12-23 22:33:59 |只看该作者
原帖由 yk1234 于 2007-12-23 20:38 发表
//------------------------------------------------------------------------
// 简称: Backset
// 名称: 向前赋值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------ ...



向前赋值函数以条件作为参数,该如何编写?

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
387
积分
2724
帖子
167
主题
33
阅读权限
80
注册时间
2007-9-21
最后登录
2020-2-24
6#
发表于 2007-12-23 23:20:43 |只看该作者
原帖由 nopain 于 2007-12-23 22:08 发表
1、不能像前赋值。所以MyVal[ i ] ==0;的写法是错误的。
2、函数的第一个参数应该是布尔型。



编写向前赋值函数的目的是为了判断High[2]==Highest(High,5)是否成立,若条件成立,只要以后的价格Close>High[2]就可视为买入的条件.
请版主参看附件,该如何编写?(L摘自【证券混沌操作法——低风险获利指南】)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2007-12-24 08:40:21 |只看该作者
这样的想法不需要向前赋值,当(High[2] == highest(high,5))的条件满足后,您可以用变量Value1记录下High[2]的值,并且设置标志位。然后只要Close>Value1就买入。
大致代码如下:
  1. Vars
  2.      NumericSeries Value1;
  3.      BoolSeries bBuyCon(false);
  4. Begin
  5.     If(CurrentBar >= 0)
  6.     {
  7.          Value1 = Value1[1];
  8.          bBuyCon = bBuyCon[1];
  9.     }

  10.     If(bBuyCon && Value1!=InvalidNumeric && Close > Value1)
  11.     {
  12.           Buy(1,Close);
  13.           bBuyCon = false;
  14.     }

  15.     If(High[2] == Highest(high,5))
  16.     {
  17.           Value1 = High[2];
  18.           bBuyCon = True;
  19.     }        
  20. End
复制代码

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 00:30

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部