If False Then.. ?? (EasyLanguage) - 財經

Table of Contents

各位好, 小弟這個問題去請教了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的新新手, 問題可能很基本請見諒~~~ 謝謝~~~


--

笑,是一個人最美的表情

--

All Comments

Rae avatarRae2011-05-19
其實遇到這種問題,第一個做的事情就是把值顯示出來..
Carol avatarCarol2011-05-23
意義有寫了啊,就是"Force Series Function"
Hedy avatarHedy2011-05-25
if false then的部分,當然不會執行到
Sierra Rose avatarSierra Rose2011-05-28
但是會用個陣列,把每次回傳值存起來
Jacky avatarJacky2011-05-29
這樣的話,你如果要用AverageFC[3]這類的值,就很快可以拿到
Elvira avatarElvira2011-06-01
所以是因為那段之上的code都沒有讀前次函數的動作
Lydia avatarLydia2011-06-05
為了避免這函式變成simple, 要找個地方塞"AverageFC[1]"
Donna avatarDonna2011-06-08
又為了不影響結果, 把[1]的值指定給沒有作用的value1
Wallis avatarWallis2011-06-12
再來為了不讓這段程式有執行的機會, 用If False Then
反正只要讓編譯器看到code裡有出現Average[1]就好了是嗎
Xanthe avatarXanthe2011-06-16
謝謝Rudy大的指點!!
Yedda avatarYedda2011-06-19
請問Force Series Function..中文要怎麼解釋壓?
Anonymous avatarAnonymous2011-06-22
強制轉變為序列函式? 沒人回我來猜一下~ XD