googleandy 發表於 12-10-21 09:35

請教程式問題

本帖最後由 googleandy 於 12-10-21 09:37 編輯



小的也從頭開始學習 Multicharts, 問一個簡單問題, 請勿見笑.
程式交易最怕 "無窮迴圈". 失控以至於不斷地下單.

上面程式沒有以 MarketPosition 變數控制,
請問 為何沒有失控以至於不斷地下單?
謝謝!






bacardi 發表於 12-10-21 09:55

因為在"設定策略 --> 屬性"的設定, 有一個"部位限制"可以限制同方向進場的次數,
Andy大如果把這選項勾起, 設成1000次, 就會不斷的進場, 不然MC只限定進場一次



googleandy 發表於 12-10-21 10:00

bacardi 發表於 12-10-21 09:55 static/image/common/back.gif
因為在"設定策略 --> 屬性"的設定, 有一個"部位限制"可以限制同方向進場的次數,
Andy大如果把這選項勾起,...

原來如此, 謝謝您!{:4_209:}

winfast48 發表於 12-10-21 10:29

sell是多單平倉。
有多單才會平倉的樣子。

googleandy 發表於 12-10-21 10:41

winfast48 發表於 12-10-21 10:29 static/image/common/back.gif
sell是多單平倉。
有多單才會平倉的樣子。

對哦,

Buy ---> Sell
SellShort ---> BuyToRecover

謝謝!


補充內容 (12-10-22 08:22):
更正,應該是buytocover才對。

googleandy 發表於 12-10-21 10:57

winfast48 發表於 12-10-21 10:29 static/image/common/back.gif
sell是多單平倉。
有多單才會平倉的樣子。



再加入二行比較合理.
哈, 這樣 手中部位 非多即空. 對吧?


chrisiflp 發表於 12-10-21 11:11

MC雖然有外部保護機制可以避免重複下單情況,
不過還是應該養成習慣將控制變數加上去比較好!

畢竟程式碼有可能會越寫越長, 條件越來越複雜,
程式中的控制變數就變得很重要了...

{:4_153:}

雙巴神 發表於 12-10-21 11:16

googleandy 發表於 12-10-21 10:57 static/image/common/back.gif
再加入二行比較合理.
哈, 這樣 手中部位 非多即空. 對吧?

buy完 如果遇到 sellshort ,是"多空翻單" (多變空)

buy完 如果遇到 sell,"多單平倉"

sellshort完 如果遇到 buy ,是"多空翻單" (空變多)

sellshort完 如果遇到 buytocover,"多單平倉"


可能還要再注意一下



補充內容 (12-10-21 21:29):
sellshort完 如果遇到 buytocover,"空單平倉"   改一下,這個錯了

googleandy 發表於 12-10-21 11:59

chrisiflp 發表於 12-10-21 11:11 static/image/common/back.gif
MC雖然有外部保護機制可以避免重複下單情況,
不過還是應該養成習慣將控制變數加上去比較好!



是的,我個人以前學過VB,
現在從頭學MC ,


程式最怕無限迴圈,
自行用控制變數比較可靠。


googleandy 發表於 12-10-21 12:14

雙巴神 發表於 12-10-21 11:16 static/image/common/back.gif
buy完 如果遇到 sellshort ,是"多空翻單" (多變空)

buy完 如果遇到 sell,"多單平倉"


是的,
如果要更謹慎一點,
可以用current Contracts來控制,
如果有正的部位,才可執行sell,
如果有負的部位,才可執行buytoRecover,
總之,寧可用笨且繁雜的方法,也要嚴謹一點。
Thank you!

upupdowndown 發表於 12-10-21 15:23

感謝andy大的發文,以及雙巴神的補充說明,
總有一天,也是會碰到類似這樣的問題

薛豹 發表於 12-10-21 15:42

謝謝提供這個 思考的好方向!

太極陰陽 發表於 12-10-21 16:17

菜鳥正蹲在旁邊努力做筆記學習中........{:4_661:}

googleandy 發表於 12-10-21 20:12

本帖最後由 googleandy 於 12-10-21 20:19 編輯

雙巴神 發表於 12-10-21 11:16 static/image/common/back.gif
buy完 如果遇到 sellshort ,是"多空翻單" (多變空)

buy完 如果遇到 sell,"多單平倉"

稍稍懂了,
SellShort 和 Sell 一字之差, 差好多!
我希望 收盤價>5均, 做多一口,
         收盤價<5均,平倉且反手空一口,
          手上永遠有部位, 非多即空,
          部位起始值先用 -1
          練習而已, 程式不一定正確.
--------------------------------------------------------------------------
var: LenA(5); var: NumberOfText(0); var:MyPosition(-1);

if close > Average(close,LenA) then begin
      if MyPosition=-1 then begin
      buy 2 shares this bar on close;      
      MyPosition=MyPosition+2;   
      end;
   
   text_new(D,T,h+2, NumToStr(MyPosition ,0));
       NumberOfText=NumberOfText+1;
   text_setbgcolor(NumberOfText,Blue);   
end;
   
if close < Average(close,LenA) then begin
   if MyPosition=1 then begin
       Sell 2 shares this bar on close;
      MyPosition=MyPosition-2;      
   end;
   text_new(D,T,h+2, NumToStr(MyPosition ,0));
       NumberOfText=NumberOfText+1;
   text_setbgcolor(NumberOfText,Blue);            
end;
-------------------------------------------------------------------------
結果如下:




上面程式,
把 Sell 一字 改成 SellShort 結果大不相同




一字之差,相差一倍!
不可不慎.






補充內容 (12-10-22 08:27):
        buy 2 shares this bar on close;      
跟原先想像的不同.
意為:平掉所有空單(不論多少口),再建立2口多單。

googleandy 發表於 12-10-21 20:36

雙巴神 發表於 12-10-21 11:16 static/image/common/back.gif
buy完 如果遇到 sellshort ,是"多空翻單" (多變空)

buy完 如果遇到 sell,"多單平倉"


雙大, 是不是可以下一個結論:

   Buy --- 建立新多倉,
   SellShort --- 建立新空倉,

MC只對有 新倉 才會回測, 對嗎?
頁: [1] 2 3
查看完整版本: 請教程式問題