开拓者期货期权程序化系统交易论坛

标题: 老师,请问这个IF-THEN循环该怎么写?? [打印本页]

作者: xic1982    时间: 2019-1-23 00:56:35     标题: 老师,请问这个IF-THEN循环该怎么写??

本帖最后由 xic1982 于 2019-1-23 01:57 编辑

老师,请问这个IF-THEN循环该怎么写?

TS代码,上半部分定义了condition1
四句代码这个命令条件不成立很伤脑筋。

If condition1 = TRUE    then Sell Next Bar  LOWEST( LOW , 2) STOP ;   //(一)、如果条件1成立,C低于2K线的最低点,平多

If condition1 = TRUE and LOW <= LOWEST( LOW , 2)                  //(二)、如果条件1成立,并且最低点低于2K线的最低点,则命令条件1不成立。
then condition1 = FALSE;                                                              //老师,这里肯定是先平仓然后再命令条件1不成立,但是TB没有IF,THEN的步进式写法,我想不出和(一)里面的条件不冲突的写法

Sell Next Bar  LOWEST( LOW , 20) STOP ;                                       //(三)然后C低于20K线的最低点,平多??????老师,这里的条件是什么?感觉和上下都不搭啊

If condition1 = TRUE and LOW <= LOWEST( LOW , 20)              //(四)如果条件1成立,并且最低点低于20K线的最低点,则命令条件1不成立。
then condition1 = FALSE;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我(一)(二)句子改写如下:但是这样可能无法正常发出平仓指令,

     if (condition1 = true and low[1] < Lowest (low[1],2))
                {                     
                                SELL (1,Open) )             //老师,这里的下一根开盘平多如何写?  if (condition1 = true and low【1】 < Lowest (low【1】,2)),这样对吗?还是有别的写法?
                                }
                               
     if (condition1 = true and low < Lowest (low,2))                      //老师,上面的用了low[1],那么这里的条件判断怎么办?是不是会比上一条早成立,然后上一条的SELL就没法发出来了?如果上面用low[2],这里用low[1],感觉就比原指标要慢很多了,2根K线在日线级别上的利润差大了去了。
                                {
                                condition1 = False;
                                }
      if ( low < Lowest (low,20))
                {                     
                                SELL (1,Open) )
                                }
请问老师,这种IF  条件1成立,则执行,然后命令条件1不成立的语句该怎么写???
我有想过把持仓为0加入,但是感觉不严密,牵一发而动全身啊,请您指点以下,帮我改写一下这个循环。看看怎么能最简单实用的改写?
作者: 小米    时间: 2019-1-25 09:46:36

if( condition 1)
{
     sell;
}else
{
   ...
}
//上面这段,就是条件1满足执行某动作。以及else表达的是条件1不满足的情况下。

ps:if (condition1 = true and low[1] < Lowest (low[1],2))这样的写法是有误的。
  1,判断是否相等是使用== ,而赋值符号才是= 。
  2,在条件后直接计算lowest(low[1],2)这个写法极易导致计算结果有误的。
       可改成先声明一个变量,在条件外将lowest(low[1],2)赋值给变量,再将该变量代入原条件是中进行即可。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2