Multicharts Singal 語法
Multicharts Singal 中的PercentR LE:inputs: Length( 14 ), OverSold( 20 ), OverBought( 80 ), Trigger( 62 ) ;
variables: var0( 0 ), var1( 0 ), var2( false ) ;
var0 = PercentR( Length ) ;var1 = Average( Close, Length ) ;
if var0 < OverSold then var2 = true else if var0 > OverBought then var2 = false ;
condition1 = var2 and var1 > var1[1] and var0 crosses over Trigger ;if condition1 then begin Buy ( "PctRLE" ) next bar at market ; var2 = false ;end ;
請問其中var2( false )的作用是否指var2是false條件之下不執行,var2是true條件之下執行?
是否指PercentR < OverSold條件之下執行?PercentR > OverBought條件之下不執行?
var2( false ) 只是定義 var2 一開始是 false, 屬於布林值
本帖最後由 JimmyHK 於 15-10-19 16:00 編輯
pcking2008 發表於 15-10-19 15:32 static/image/common/back.gif
var2( false ) 只是定義 var2 一開始是 false, 屬於布林值
即是和我所說的剛剛相反?
為什麼不直接寫成這樣?
condition1 = var1 > var1[1] and var0 crosses over Trigger ;
condition2 = var0 > OverSold ;
condition3 = var0 < OverBought ;
if condition1 and condition2 and condition3 then
Buy ( "PctRLE" ) next bar at market ;
有進過oversold就記住 var=true 直到 overbougt
JimmyHK 發表於 15-10-19 15:59 static/image/common/back.gif
即是和我所說的剛剛相反?
為什麼不直接寫成這樣?
variables: var2,()裡的東西,不過就是 var2 這個變數的起始預設值,因為填入了 false,所以把 var2 的分類歸為 布林。
跟後續的 code 怎麼去利用 var2 沒有什麼關係,就這樣。 JimmyHK 發表於 15-10-19 15:59 static/image/common/back.gif
即是和我所說的剛剛相反?
為什麼不直接寫成這樣?
就如同曾老師說的
你注意看看 var2 出現的地方是直接引用, 也就是看這個變數是 true 或 false 而已
跟程式其他地方沒有關係
能不能怎麼精簡也沒有關係, 程式本來就是隨人寫 {:5_289:}
如圖,語法上,
if var2=true 可以簡略為(或懶惰為)
if var2
這兩句是完全相同的
本帖最後由 TrendRover 於 15-10-20 04:00 編輯
JimmyHK 發表於 15-10-19 15:59 static/image/common/back.gif
即是和我所說的剛剛相反?
為什麼不直接寫成這樣?
"是否指PercentR < OverSold條件之下執行?PercentR > OverBought條件之下不執行?"
你誤會了 if 那裏的一四:
是< oversold ----var2=true ,
如果沒爬升到 overbought level前不會把 var2 清為 false ~~
===============================
那如果沒有 touch 到 Oversold以下也別想有var2=true condition ====也就是只等超賣發生後等待均線轉正和ratio 爬上62%(0.618 fibo ratio ) 才開買!!
謝謝大家!沒想到是這麼複雜的,不過正想寫這種條件的策略,竟然給我誤打誤撞碰上了!{:4_661:}
但不明白為什麼條件成立並且執行之後還要有這句:
Buy ( "PctRLE" ) next bar at market ;
var2 = false ;
是否表示訊號觸發一次之後,沒有再進過oversold之前自動成為var2 = false?
JimmyHK 發表於 15-10-20 11:54 static/image/common/back.gif
謝謝大家!沒想到是這麼複雜的,不過正想寫這種條件的策略,竟然給我誤打誤撞碰上了!
但不明白為 ...
下單後,一些條件得 "還原",
否則, 一直條件都成立,將不斷下單... 本帖最後由 JimmyHK 於 15-10-24 13:00 編輯
先謝謝大家幫忙!現打算用上述布林值語法寫個比較複雜的策略,舉個例,如果收市價跌破10MA那麼不執行原先的Trigger,到收市價升破10MA才執行,應該寫成:
inputs: Price(Close), Length( 10 ),......................;
variables: var0( 0 ),var1( false ) ,.........................;
var0 = AverageFC( Price,Length ) ;................................................;
if Close < var0 then var1 = falseelse if Close > var0 then var1 = true;
condition1 = var1 and................................... ;if condition1 then
Sellshort ( "MASE" ) next bar at market ;
不過再加上如果收市價跌破20MA那麼那麼不執行原先的Trigger,到收市價升破20MA才執行,是否應該寫成:
inputs: Price(Close), Length1( 10 ),Length2( 20 ),......................;
variables: var0( 0 ) ,var1( 0 ) ,var2( false ) ,.........................;
var0 = AverageFC( Price,Length1 ) ;var1= AverageFC( Price,Length2 ) ;................................................;
if Close < var0 then var2 = falseelse if Close > var0 then var2= true ;
End else if Close > var1 then
var2= false
else if Close > var1 then var2= true ;
condition1 = var2 and................................... ;if condition1 then
Sellshort ( "MASE" ) next bar at market ;
還是應該是這樣:
inputs: Price(Close), Length1( 10 ),Length2( 20 ),......................;
variables: var0( 0 ) ,var1( 0 ) ,var2( false ) ,var3( false ) ,.........................;
var0 = AverageFC( Price,Length1 ) ;var1= AverageFC( Price,Length2 ) ;................................................;
if Close < var0 then var2 = falseelse if Close > var0 then var2= true ;
End else if Close > var1 then
var3= false
else if Close > var1 then var3= true ;
condition1 = var2 and var3................................... ;if condition1 then
Sellshort ( "MASE" ) next bar at market ;
全都試過了,兩種都不能做到想要的效果!
如果想要第一條件:
if Close < var0 then
var2 = false
else if Close > var0 then
var2= true ;
受第二條件限制:
if Close < var1 then
var3= false
else if Close > var1 then
var3= true ;
即只要第二條件Close < var1 ,就算第一條件Close > var0達到但仍然是var2 = false JimmyHK 發表於 15-10-25 12:45 static/image/common/back.gif
全都試過了,兩種都不能做到想要的效果!
如果想要第一條件:
建議你先學學logic design 的state machine 圖 ,你好像還沒搞懂隱藏性狀態變化
TrendRover 發表於 15-10-26 03:48 static/image/common/back.gif
建議你先學學logic design 的state machine 圖 ,你好像還沒搞懂隱藏性狀態變化
問題已解決,謝謝關注! {:4_621:}
頁:
[1]