作者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