小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

量化投資

 taozl 2022-09-23 發(fā)布于安徽

第十六章:關于編寫bar內(nèi)交易的小技巧

  前面講過多次,在編寫交易邏輯的時候需要先分析是否用到了bar內(nèi)的數(shù)據(jù),如果單純的open價格買入,那只需要非bar內(nèi)交易即可,如果你的代碼遇到了盤中突破等bar內(nèi)數(shù)據(jù)的話,就需要開啟bar內(nèi)交易。因此在遇到bar內(nèi)交易的時候,我們首先想到的就是獲取marketposition的bar持倉數(shù)據(jù)。如果我們只要求bar內(nèi)只進行一次交易(一次平倉,一次出場)的話。我們需要用到Intrabarpersist這個復合數(shù)據(jù)類型。而且需要把marketposition持倉數(shù)據(jù)提取出來,因為marketposition本身是沒有可回溯功能的。

  因此有下面的代碼,開啟bar內(nèi)運行market單。

  示例代碼1:雙均線交叉,bar內(nèi)模式

復制代碼
[IntrabarOrderGeneration=true]
var:intrabarpersist mp0(0),ma0(0),ma1(0);

mp0=marketposition;

ma0 = Average(close,5);
ma1 = Average(close,20);

if mp0[1] <> 1 and ma0 > ma1 then buy 1 shares next bar at market;

if mp0[1] <> -1 and ma0 < ma1 then sellshort 1 shares next bar at market;


print(barstatus,' time=',Time_,'markposition= ',marketposition,
' markposition_mp0= ',mp0, 'mp0[1]= ',mp0[1]);
復制代碼

//觀察返回值(部分)

復制代碼
   0.00 time= 940.00markposition=    0.00 markposition_mp0=    0.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
.....(省略)
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   1.00 time= 940.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   2.00 time= 941.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    0.00
   0.00 time= 941.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    1.00
   1.00 time= 941.00markposition=    1.00 markposition_mp0=    1.00 mp0[1]=    1.00
復制代碼

【分析】

  1、藍色的兩條數(shù)據(jù)分別表示在一個bar內(nèi)交易是的bar的起點和bar的終點

  2、在進行初次交易時,我們進行多單交易,此時mp0 = marketposition記錄了持倉狀態(tài),mp0和marketposition為同步顯示,表示意思是一樣的

  3、第一個紅色的mp0[1]表示位置,此時用mp0去回溯上一個bar的持倉狀態(tài),此時為0,因為在圖表開頭,此時并沒有marketposition的狀態(tài)

  4、第二個紅色mp0[1]表示的位置,此時上一個bar結(jié)束,下一個bar開盤后,mp0去回溯刪一個bar的狀態(tài),表示為持有了多頭。

  在這里我們充分運用到了復合數(shù)據(jù)類型Intrabarpersist它的bar內(nèi)可以回溯上一個bar的信息。因此這里可以用于日內(nèi)交易。如果我們采取想上一個bar的持倉狀態(tài)(“委托判斷條件”),去進行下一個bar的開倉要求(“委托單觸發(fā)”)。

  示例代碼2:

復制代碼
[IntrabarOrderGeneration=true]
var:intrabarpersist mp0(0),intrabarpersist mp1(0), intrabarpersist ma0(0),
intrabarpersist ma1(0);

mp1=marketposition;

ma0 = Average(close,5);
ma1 = Average(close,20);

if mp1[1] <> 1 and ma0[1] > ma1[1] then buy 1 shares next bar at market;

if mp1[1] = 1 and ma0[1] < ma1[1] then sell 1 shares next bar at market;

if mp1[1] = 1 then sell 1 shares next bar at ma0[1] stop ;
復制代碼

【分析】:

  1、如果需要定義一個變量在bar內(nèi)進行變化的話,那么需要設置Intrabarpersist var0(0)這樣一個變量去接收它,比如var0 = high;var0=average()等。

 【備注】:子圖不能實現(xiàn)bar內(nèi)交易

=================================================

之前的文章感謝大家的轉(zhuǎn)載,希望轉(zhuǎn)載時請注明出處,本人轉(zhuǎn)自其它網(wǎng)站的圖表一并感謝,謝謝~!

https://www.cnblogs.com/noah0532/

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多