作者lip99 (I don't care~)
看板Trading
标题[问题] If False Then.. ?? (EasyLanguage)
时间Sun May 15 01:10:35 2011
各位好, 小弟这个问题去请教了google大神也说不出个所以然
所以想麻烦各位大大帮忙看一下, 谢谢~
我依着寰宇的那本"TS程式交易全攻略"所说去开了AverageFC的code来看
{*******************************************************************
Description: Simple Moving Average (fast calculation)
Provided By: Omega Research, Inc. (c) Copyright 1999
********************************************************************}
Inputs: Price(NumericSeries), Length(NumericSimple);
Variables: Sum(0), Counter(0);
If CurrentBar = 1 Then Begin
Sum = 0;
For counter = 0 To Length - 1 Begin
Sum = Sum + Price[counter];
End;
End
Else
Sum = Sum + Price - Price[Length];
If Length > 0 Then
AverageFC = Sum / Length
Else
AverageFC = 0;
{Force Series Function}
If False Then
value1 = AverageFC[1];
-----
关於"If False Then"这个写法的用途实在很困惑, 因为我本身VBA有一些基础
在VBA里出现这句的话, 後面的指令根本不会被执行, 那也没必要留下这段
但是我在网路上也看到不少这句话的变形, 所以推断它会放在这一定有作用
我猜测用意是要在无资料的日子自动补值, 但实在有看没有懂...
难道"False"在这里变成一个内定变数?
另外, 假设"If False Then"这一段真的有可能被执行的话, 那又有一个问题
为什麽这里要把前一次的值传进一个没来由的"value1"变数, 传进去能干嘛?
我看到的一些变形的code, 等号後面虽是接不同的东西, 等号前面却一样是value1
以一般写程式逻辑来看, 不是该写成 AverageFC = AcerageFC[1] ???
把值指定给value1的话, 这段不也是在做白工?
我是TradeStation的新新手, 问题可能很基本请见谅~~~ 谢谢~~~
--
笑,是一个人最美的表情
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.1.98
1F:→ idleidle:其实遇到这种问题,第一个做的事情就是把值显示出来.. 05/15 10:35
※ 编辑: lip99 来自: 59.104.10.58 (05/15 11:43)
2F:推 Rudy:意义有写了啊,就是"Force Series Function" 05/15 14:25
3F:→ Rudy:if false then的部分,当然不会执行到 05/15 14:27
4F:→ Rudy:但是会用个阵列,把每次回传值存起来 05/15 14:29
5F:→ Rudy:这样的话,你如果要用AverageFC[3]这类的值,就很快可以拿到 05/15 14:31
6F:→ lip99:所以是因为那段之上的code都没有读前次函数的动作 05/15 16:32
7F:→ lip99:为了避免这函式变成simple, 要找个地方塞"AverageFC[1]" 05/15 16:33
8F:→ lip99:又为了不影响结果, 把[1]的值指定给没有作用的value1 05/15 16:34
9F:→ lip99:再来为了不让这段程式有执行的机会, 用If False Then 05/15 16:35
10F:→ lip99:反正只要让编译器看到code里有出现Average[1]就好了是吗 05/15 16:35
11F:→ lip99:谢谢Rudy大的指点!! 05/15 16:36
12F:→ kazaffly:请问Force Series Function..中文要怎麽解释压? 05/15 17:43
13F:→ lip99:强制转变为序列函式? 没人回我来猜一下~ XD 05/17 02:10