請益,變數
想請教各位大大在編寫程式的時候都會用到var,如var:ma(0);
那我想問的是,括弧內的數值大小會讓程式出現什麼樣的差別呢?
煩請大大們幫忙,感恩。
1.放在input 裡面的叫做參數,它可以由外部做設定,例如內建的指標 KD , RSI , MACD ... 都可以在圖表內直接修改參數,變換不同的參考 K棒數
2.放在var的叫做變數 , 他的值只能在程式裡修改或運算 , 你可以複製一個 RSI指標的程式碼, 將裡面的 input 改成 var , 另存成 myRSI , 加到圖表內就可以發現myRSI無法在圖表中作修改
3.設在var裡的變數在程式內可以重新修改運算 , 設在input的參數不行
input: AB(0), CD(1);
AB = CD + 1 ; 會出現編譯錯誤 ,因為 AB不能在程式內重新被設定
************************************
input: CD(1) ;
var: AB(0) ;
AB = CD + 1 ; 變數 AB在程式可以隨時透過運算或設定來改變值 , 參數 CD在程式內永遠是預設值 1
{此時AB = 1 }
......
......
......
......
AB = 5 ;
{此時AB = 5 }
......
......
......
fine940621 發表於 16-2-4 00:43
感謝easytrader788大大的解答,不過我想問一下,以下是我的測試:
var:MA1(0),MA2(99999),MA3(-99999);
你想要做到的是這樣的效果嗎?
------------------------------------
var:MA1(10),MA2(20),MA3(30);
plot1(Average(C,MA1));
plot2(Average(C,MA2));
plot3(Average(C,MA3));
fine940621 發表於 16-2-4 00:43
感謝easytrader788大大的解答,不過我想問一下,以下是我的測試:
var:MA1(0),MA2(99999),MA3(-99999);
原本是不一樣的,但是
MA1=Average(C,20);
MA2=Average(C,20);
Ma3=Average(C,20);
這段已經改變原始MA123的值,而三個都是=average(c,20)
所以變成三個值都一樣,所以印出來就是重疊的線囉
括弧內的數值,就是該變數在程式內運行的初始值 easytrader788 發表於 16-2-2 22:53
括弧內的數值,就是該變數在程式內運行的初始值
感謝easytrader788大大的解答,不過我想問一下,以下是我的測試:
var:MA1(0),MA2(99999),MA3(-99999);
MA1=Average(C,20);
MA2=Average(C,20);
Ma3=Average(C,20);
plot1(MA1);
plot2(MA2);
plot3(MA3);
var內的數值都不一樣,但是線都是重疊的,看不出來有什麼差別。
沒房子的阿捨 發表於 16-2-4 23:51
你想要做到的是這樣的效果嗎?
------------------------------------
var:MA1(10),MA2(20),MA3(30);
阿捨大大,這樣的寫法跟
input:MA1(10),MA2(20),MA3(30);
應該是一樣的意思沒錯吧~
那用input跟var的差異是在哪呢?
fine940621 發表於 16-2-4 00:43
感謝easytrader788大大的解答,不過我想問一下,以下是我的測試:
var:MA1(0),MA2(99999),MA3(-99999);
var:MA1(0),MA2(99999),MA3(-99999);
MA1=Average(C,20);
MA2=Average(C,20);
Ma3=Average(C,20);
plot1(MA1);
plot2(MA2);
plot3(MA3);
var內的數值都不一樣,但是線都是重疊的,看不出來有什麼差別。
雖然 MA1 , MA2 , MA3 初始值不同 ,但是你都將它重設為 Average(C,20) ,當然一樣
劃出來的是 20根收盤價的均線
*********************************************
若是程式改為
input:MA1(0),MA2(99999),MA3(-99999);
MA1=Average(C,20);
MA2=Average(C,20);
Ma3=Average(C,20);
plot1(MA1);
plot2(MA2);
plot3(MA3);
會出現編譯錯誤
***************************************************
若是程式改為
input:MA1(20),MA2(20),MA3(20);
plot1(MA1);
plot2(MA2);
plot3(MA3);
劃出來的是高度 20的水平線
感覺這不是在學語法,而是必須從程式設計重新開始了... 曾永政 發表於 16-2-5 09:49
感覺這不是在學語法,而是必須從程式設計重新開始了...
之前是都沒有接觸過程式語言,最近才開始摸索當中,所以還蠻多地方不懂的。 感謝easytrader788大大,這樣的說明,我有清楚的了解到了,感恩~~~
頁:
[1]