JimmyHK 發表於 16-11-13 20:08

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 13:59

本帖最後由 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棒開始算穿越?....等等)要在修改一下才會有你要的效果

JimmyHK 發表於 16-11-14 01:41

看過英文討論區,好像說Multichatrs無法處理這個問題吧?

https://futures.io/multicharts/32570-how-make-program-store-price-value-after-crossover-then-use-place-limit.html#post424512

JimmyHK 發表於 16-11-14 01:46

講清楚一點,恐怕大家不明白,我的意思是如果價格穿越平均線時的價格是2500點,就用價格回破2500點做出場訊號,請問Multichatrs能否辦到我我要求?

無無明 發表於 16-11-14 12:38

可以做到
所謂多單守均線,當然先要站上線後才守。反之亦同。
不可使用 cross over under,需自設函數 做一次性成立送出信號一次,後續歸零
然後主程式裡面去讀取含數值去控制回圈

JimmyHK 發表於 16-11-14 13:38

謝謝回應,請問有沒有網上資訊可供參考?

JimmyHK 發表於 16-11-14 19:16

謝謝blj0511兄,明天試試看是否可行?

JimmyHK 發表於 16-11-15 12:56

今天試過blj0511兄的程式碼,仍然不能記下價格突破MA時的價位,價格回破MA時就觸發出場訊號,等於直接用MA做出場訊號,這話題從沒看過有人在這裏提出的,看來上邊英文討論區的結論是對的,Multicharts不提供這種常用的出場方式函數要顧客自己寫,樣樣都要自己動手做為什麼要那麼貴買你的軟件?對Multicharts十分失望,一點用處都沒有!

blj0511 發表於 16-11-15 13:05

"價格突破MA時的價位"

你是要突破時的ma價位還是突破時的close價位?

blj0511 發表於 16-11-15 13:19

本帖最後由 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:36

本帖最後由 JimmyHK 於 16-11-15 13:37 編輯

blj0511 發表於 16-11-15 13:05
"價格突破MA時的價位"

你是要突破時的ma價位還是突破時的close價位?
我用High/Low價位突破的,要突破時的ma價位.

JimmyHK 發表於 16-11-15 13:45

blj0511 發表於 16-11-15 13:19
if marketposition0 and barssinceentry>0 and value1=0 then begin
      if close >averagefc(close,5) ...

謝謝blj0511兄熱心幫忙,會再試試看!

JimmyHK 發表於 16-11-15 14:28

試過了,結果都是一樣,就是不能記下價格突破MA時的價位.

blj0511 發表於 16-11-15 15:10

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

qekwee88 發表於 23-3-15 08:47

blj0511 發表於 16-11-14 13:59
所以當初我說你有些地方沒交待清楚,因為感覺怪怪的,果然您使用會有問題~

如果你要的效果是 "多單進場後,第 ...

感謝分享
頁: [1]
查看完整版本: MA 或其他指標穿越價的語法-II