MA 或其他指標穿越價的語法-II
早前上來問過這問題 : http://www.coco-in.net/thread-49398-1-3.html求MA 或其他指標穿越價的語法,如果用Entryprice只能用來作停損,但用來作獲利離場就不行了,意思是以價格穿越某技術指標時價格為參考,如果回破此穿越價格時離場.
blj0511兄提供了程式範例:
if close cross over averagefc(close,5) then value1=averagefc(close,5);
if value1>0 then sell next bar at value1 stop;
但試用後發現價位回穿MA就觸發出場訊號,而非價位回穿第一次突破MA時的價位才觸發出場訊號,因為上述語法value1=averagefc(close,5),MA會隨價格移動,如果想要標示第一次突破MA時的價位應該怎樣寫?
本帖最後由 blj0511 於 16-11-14 14:13 編輯
所以當初我說你有些地方沒交待清楚,因為感覺怪怪的,果然您使用會有問題~
如果你要的效果是 "多單進場後,第一個往上穿越的ma做為之後往下掉的出場依據"的話
if marketposition<=0 then value1=0;
if maketposition>0 and barssinceentry>0 and value1=0 then begin
if close cross over averagefc(close,5) then value1=averagefc(close,5);
end;
if value1>0 then sell next bar at value1 stop;
沒try過,不知道這樣對不對,大概這樣就只會把進場後第一個穿越記下來,因為之後value1不等於0,所以即使後面再發生穿越也不會變更value1的出場值,直到出場或翻單後的再多單進場,可能有些小地方(從哪根K棒開始算穿越?....等等)要在修改一下才會有你要的效果
看過英文討論區,好像說Multichatrs無法處理這個問題吧?
https://futures.io/multicharts/32570-how-make-program-store-price-value-after-crossover-then-use-place-limit.html#post424512 講清楚一點,恐怕大家不明白,我的意思是如果價格穿越平均線時的價格是2500點,就用價格回破2500點做出場訊號,請問Multichatrs能否辦到我我要求? 可以做到
所謂多單守均線,當然先要站上線後才守。反之亦同。
不可使用 cross over under,需自設函數 做一次性成立送出信號一次,後續歸零
然後主程式裡面去讀取含數值去控制回圈 謝謝回應,請問有沒有網上資訊可供參考? 謝謝blj0511兄,明天試試看是否可行? 今天試過blj0511兄的程式碼,仍然不能記下價格突破MA時的價位,價格回破MA時就觸發出場訊號,等於直接用MA做出場訊號,這話題從沒看過有人在這裏提出的,看來上邊英文討論區的結論是對的,Multicharts不提供這種常用的出場方式函數要顧客自己寫,樣樣都要自己動手做為什麼要那麼貴買你的軟件?對Multicharts十分失望,一點用處都沒有! "價格突破MA時的價位"
你是要突破時的ma價位還是突破時的close價位? 本帖最後由 blj0511 於 16-11-15 13:25 編輯
if marketposition<=0 then value1=0;
if maketposition>0 and barssinceentry>0 and value1=0 then begin
if close >averagefc(close,5)then value1=averagefc(close,5);
end;
if value1>0 then sell next bar at value1 stop;
改這樣試試,我寫的還是以均價為出場點,應該不可能以穿越時的價位close當出場點,因為這樣下一根可能馬上就出場了
本帖最後由 JimmyHK 於 16-11-15 13:37 編輯
blj0511 發表於 16-11-15 13:05
"價格突破MA時的價位"
你是要突破時的ma價位還是突破時的close價位?
我用High/Low價位突破的,要突破時的ma價位. blj0511 發表於 16-11-15 13:19
if marketposition0 and barssinceentry>0 and value1=0 then begin
if close >averagefc(close,5) ...
謝謝blj0511兄熱心幫忙,會再試試看!
試過了,結果都是一樣,就是不能記下價格突破MA時的價位. if d>d then buy next bar at market;
if marketposition<=0 then value1=0;
if marketposition>0 and barssinceentry>0 and value1=0 then begin
if close > averagefc(close,5) then value1=averagefc(close,5);
end;
if value1>0 then sell next bar at value1 stop;
setexitonclose;
跑5分K,我測試是可以的,並不會因為其他穿越改變進場後的第一個穿越ma5值,不過我這裡寫的事只要close>5ma就算穿越,若是close cross over 5ma才叫穿越的話,如果close一直都沒掉下來,會一直到高檔才發生close cross over 5ma
blj0511 發表於 16-11-14 13:59
所以當初我說你有些地方沒交待清楚,因為感覺怪怪的,果然您使用會有問題~
如果你要的效果是 "多單進場後,第 ...
感謝分享
頁:
[1]