好奇內建的condition1 與 自己設變數true fale的差異

  •   662 
  • 最後發表   無情卻慈悲  2022 三月 14
無情卻慈悲 發文於   2022/01/27

好奇內建的condition1 與 自己設變數true fale的差異,

我寫了測試如下 :

Var: MyFlag1(True);

Var: MyFlag2(False);

 

MyFlag1 = open < close; //收黑

MyFlag2 = Close > Close[1]; //上漲

 

If MyFlag1 And MyFlag2 

Then begin

 Ret = 1;

print(date,time,MyFlag1,MyFlag2);

end;

 

用日K去試雷達,print出來後,全都是true,沒有一日是fale的,

請問我在設定這種true或false變數時,應怎樣預設值?

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/01/28

Hello 無情卻慈悲,

 

您的print是被包在 MyFlag1 跟 MyFlag2 裡,所以print出來的資訊一定會是True。

因為若是有其中一個是False的話print就不會執行。

建議您可以修改成:

If MyFlag1 And MyFlag2 Then Ret = 1;

print(date,time,MyFlag1,MyFlag2);

這樣的話就會把每根Bar的資訊給print出來。

無情卻慈悲 發文於   2022/01/28

你好,

我想再問一下,

1、Var: MyFlag1(True);,預設是true或fallse,會有差別嗎?

2、內建的condition1,它預設的值也是false嗎?

感謝

XQ小幫手 發文於   2022/02/07

Hello 無情卻慈悲,

 

差別就是該變數的起始值是True還是False。

如果是像您上面那樣使用的話不會有差別,但舉例來說:

Var: MyFlag1(True);

if MyFlag1 then ret = 1;

MyFlag1 = open < close; //收黑

這樣的話MyFlag1的起始值就會造成差別。

內建 Condition 的預設值是 False 沒錯。

無情卻慈悲 發文於   2022/02/08

你好,

我會包在裡面,是要觀察ret時才print結果。

另有一點不太懂,

Var: MyFlag2(False);

....

MyFlag2 = Close > Close[1]; //上漲

當MyFlag2 = Close > Close[1]執行時,MyFlag2就已經會變成 true 了嗎?

 

XQ小幫手 發文於   2022/02/10

Hello 無情卻慈悲,

 

在腳本尚未執行到 MyFlag2 之前,MyFlag2 都會維持原本的值。

依照您的例子,在腳本第一次執行的時候宣告了 MyFlag2 的變數,同時讓其值為 False。

接著在執行到 MyFlag2 = Close > Close[1]; 時會判斷其值是否要變更。

假設第一次執行時 MyFlag2 變為 True 的話,腳本第二次執行時 MyFlag2 會維持在 True 直到再次執行 MyFlag2 = Close > Close[1] 時才會判斷其值是否要改變。

無情卻慈悲 發文於   2022/02/12

你好,

我再確認一下,所以當MyFlag2 = Close > Close[1]執行時,MyFlag2就已經會變成 true 了嗎?

XQ小幫手 發文於   2022/02/15

Hello 無情卻慈悲,

 

如果 Close > Close[1] 是 True 的話:

MyFlag2 = Close > Close[1] 執行前 => MyFlag2 是原本的值 (True / False 看上一次腳本執行的結果)。

MyFlag2 = Close > Close[1] 執行後 => MyFlag2 會從原本的值變為True。

無情卻慈悲 發文於   2022/02/16

所以您的意思是

MyFlag2 = Close > Close[1]

MyFlag2 = true 或 false會因為k線圖的時間一直往後推進時發生Close > Close[1] 或 Close < Close[1] 而一直變換MyFlag2的值嗎?

 

XQ小幫手 發文於   2022/02/18

Hello 無情卻慈悲,

 

每次腳本執行都會根據當下資訊做判斷。

舉例來說:

value1 = average(close, 5);

value1也會隨著價格的變化而有所改變。

布林變數也是相同的,會隨著資訊改變而有所變化。

無情卻慈悲 發文於   2022/02/19

你好,

(1)

MyFlag2 = Close > Close[1]

(2)

if Close > Close[1] then MyFlag2 = true;

(3)

if Close > Close[1] then 

MyFlag2 = true

else 

MyFlag2 = false;

 

(4)內建的condition1

 

condition1 = Close > Close[1]

請問一下,以上四種寫法是否都是一樣的意思呢?

 

我長久以來一直卡在這個問題,所以我為了確定真的能控制 true或false,我都會用else來反向控制。

 

顯示更多回應 發表回覆
Close