05 程式的大小事

這一系列我預設為,給大家帶來寫Multicharts程式的觀念與方法,將在本篇告一段落。先回頭來看一下寫程式的步驟與Multicharts程式的重點。

寫程式的步驟:

  1. 設定目標;
  2. 研究分析達成目標的主要功能;
  3. 將主要功能細分成更多小而獨立的程序;
  4. 逐步完成小程序;
  5. 結合所有小程序並完成。

每根K棒結束都執行程式一次;
以K棒來思考;
每根K棒都紀錄一次所有變數的值;
以中括號[n]來取前第n根K的變數值;
Multicharts的訊號動作與真實交易很貼切。

MC大解密在此篇告一段落後結束!? 當然不是,這是另一新階段的開始。

為了要讓最多的人,尤其是想要步入程式交易的人,所以採取了以述說重點與實作功能的方式,來建立入門的概念。我不喜歡用傳統學校教育的方式,先定義好一切基本的事物,然後組合去應用;反而喜歡從目標中找須求,從須求中思索必要的技能。所以只先建立起步驟與重點,並依指標與訊號實作來了解簡單的指令與正確的Multicharts程式概念,希望這樣較容易讓人吸收。可是接下來不免俗的,為了要學習更多的功能,理論性的指令功能介紹也會變多,但我還是會盡量以此種模式來說明。

接下來我們就以一篇篇的指標與訊號為主,詳細說明設計實作的方法,順便學習新指令;另一部份也來分享一些程式與交易的概念。最後為了新入門的朋友,我也會準備如安裝操作的說明文件,不過我想寫的並不是教你安裝步驟或操作方法,而是要以交易者的角度去了解Multicharts,用我們自己須要的目標來研究功能。

或許很多人還在猶豫Multicharts能不能學會?懷疑Multicharts能做到什麼?那麼我認為–只要有心,大家都會寫Multicharts程式;只要能想得清楚說得明白,Multicharts能為我們做任何與交易相關的事。

讓我們一起為自己的程式交易努力,善用Multicharts建立自己的交易武器!

 

本篇發表於 MC 大解密。將永久鏈結加入書籤。

14 則回應給 05 程式的大小事

  1. mewmi 說道:

    歡迎大家在此提出自己的須求,我會盡量安排在日後的文章中做詳細的解說。
    謝謝大家!

  2. 凡人 說道:

    感謝m大如此用心。
    本身有點程式基礎,之前用ab最近才換成用mc,
    我想用程式做多策略,並用下單機自動下單。
    目前缺的還不少(穩定數據源、回測重點、策略想法、api下單機…),
    只能一點一點去拼湊,
    還請m大多多指導。

  3. AF 說道:

    哈囉 M大
    不知您是否有看過華康大的關鍵價位
    是利用均線拉回一定天數後”再突破”進場方式
    由於有些型態的成分,我一直寫不出來
    再麻煩您看看了

    定義是這樣的(以多方為例):
    1.價格由下往上站上MA後開始追蹤

    2.站上MA後的最高點”X”,必須再拉回三天(或三天以上),此時”X”即為多方關鍵價,隨後某天再次突破此點時則買進多單

    3.空方關鍵價反推之…………

  4. 煮蜜 說道:

    熱烈迴響!
    搬張椅子,
    讓我們繼續看下去。

  5. junten 說道:

    M大您好,特此致意,問好。同問A大好。

  6. sylvia 說道:

    菜鳥請問m大:我想在盤中任何一不特定時點就以開啟自動下單時的第一個價位為計算基準, 算出a、b(進場、加碼價),如何寫才能讓a、b價格固定下來,而不要每根k棒又重新計算一次產生不同的進場加碼點位?例如開啟自動下單當時的第一個成交價+50點買進一口(“a”) ,a+20點買進一口(“b”)…感謝m大指導….

    • mewmi 說道:

      所以你會抓到價格對嗎..
      假設你這個是當沖策略
      最簡單的方法就是
      1. 每天一開盤就先設定a = 0, b = 0
      2. 在設定a,b前加一個條件式
      if (a = 0) then begin ….. end;
      if (b = 0) then begin ….. end;

      這樣一但你將a,b設定好,就不會在進if中去設定了..
      a,b就能保留一天了..

  7. sylvia 說道:

    我照m大的指導寫了以下語法 編譯有過 但就是沒有訊號出現??不知錯在哪裡
    麻煩您了….
    if getappinfo(airealtimecalc) = 1 and getappinfo(aiStrategyAuto) = 1 and getappinfo(aiIntrabarOrder)=1 then begin
    if value1=0 then begin value1=close+50;
    end;
    if value2=0 then begin value2=value1+20;
    end;
    end;

    if close cross over value1 then
    buy (“a”) next bar at value1 limit;
    if close cross over value2 then
    buy(“b”) next bar at value2 limit;

    • mewmi 說道:

      你可以在從頭看一次1-5…..
      你可能誤會 cross over/ cross under 這兩個動作了..
      還記得每根K棒執行一次嗎?
      你想想看cross over的動作到底是什麼意思..
      因為你是限價,價格已經穿越了,下一根K不成交的機會很大
      這樣到了在下一根K,cross over已經不會成立,就不會在有下單動作
      想想看….(每根K棒執行一次,cross over?)

發表迴響