![交易開拓者代碼學習各種買賣指令及實例_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/c1889171-8fac-43a4-a7c5-f21c7145caf5/c1889171-8fac-43a4-a7c5-f21c7145caf51.gif)
![交易開拓者代碼學習各種買賣指令及實例_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/c1889171-8fac-43a4-a7c5-f21c7145caf5/c1889171-8fac-43a4-a7c5-f21c7145caf52.gif)
![交易開拓者代碼學習各種買賣指令及實例_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/c1889171-8fac-43a4-a7c5-f21c7145caf5/c1889171-8fac-43a4-a7c5-f21c7145caf53.gif)
![交易開拓者代碼學習各種買賣指令及實例_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/c1889171-8fac-43a4-a7c5-f21c7145caf5/c1889171-8fac-43a4-a7c5-f21c7145caf54.gif)
![交易開拓者代碼學習各種買賣指令及實例_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/c1889171-8fac-43a4-a7c5-f21c7145caf5/c1889171-8fac-43a4-a7c5-f21c7145caf55.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、交易開拓者代碼學習各種買賣指令及實例 TB(轉2021年07月27日 22:35原文地址:交易開拓者代碼學習各種買賣指令及實例 TB(轉 竹本無青各種買賣指令Buy說明 產生一個多頭建倉操作。 語法 Buy(Numeric Share=0,Numeric Price=0,Bool Delay=False)參數(shù) Share 買入數(shù)量,為整型值,默認為使用系統(tǒng)設置參數(shù);Price 買入價格,為浮點數(shù),默認=0時為使用現(xiàn)價(非最后Bar為Close);Delay 買入動作是否延遲,默認為當前Bar發(fā)送委托,當Delay=True,在下一個Bar執(zhí)行。 備注 產生一個多頭建倉操作,無返回值,該函數(shù)僅支
2、持交易指令。該函數(shù)僅用于多頭建倉,其處理規(guī)那么如下:如果當前持倉狀態(tài)為持平,即MarketPosition = 0 時,該函數(shù)按照參數(shù)進行多頭建倉。如果當前持倉狀態(tài)為空倉,即MarketPosition = -1 時,該函數(shù)首先平掉所有空倉,到達持平的狀態(tài),然后再按照參數(shù)進行多頭建倉。如果當前持倉狀態(tài)為多倉,即MarketPosition = 1 時,該函數(shù)將繼續(xù)建倉,但具體是否能夠成功建倉要取決于系統(tǒng)中關于連續(xù)建倉的設置,以及資金,最大持倉量等限制。 例如 在MarketPosition=0的情況下:Buy(50,10.2,1) 表示用10.2的價格買入50張合約,延遲到下一個Bar發(fā)送委托
3、。Buy(10,Close) 表示用當前Bar收盤價買入10張合約,馬上發(fā)送委托。Buy(5,0) 表示用現(xiàn)價買入5張合約,馬上發(fā)送委托。 BuyToCover說明 產生一個空頭平倉操作。 語法 BuyToCover(Numeric Share=0,Numeric Price=0,Bool Delay=False)參數(shù) Share 買入數(shù)量,為整型值,默認為平掉當前所有持倉;Price 買入價格,為浮點數(shù),默認=0時為使用現(xiàn)價(非最后Bar為Close);Delay 買入動作是否延遲,默認為當前Bar發(fā)送委托,當Delay=True,在下一個Bar執(zhí)行。 備注 產生一個空頭平倉操作,無返回值,
4、該函數(shù)僅支持交易指令。該函數(shù)僅用于空頭平倉,其處理規(guī)那么如下:如果當前持倉狀態(tài)為持平,即MarketPosition = 0 時,該函數(shù)不執(zhí)行任何操作。如果當前持倉狀態(tài)為多倉,即MarketPosition = 1 時,該函數(shù)不執(zhí)行任何操作。如果當前持倉狀態(tài)為空倉,即MarketPosition = -1 時,如果此時Share使用默認值,該函數(shù)將平掉所有空倉,到達持平的狀態(tài),否那么只平掉參數(shù)Share的空倉。 例如 在MarketPosition = -1的情況下:BuyToCover(50,10.2,1) 表示用10.2的價格空頭買入50張合約,延遲到下一個Bar發(fā)送委托。BuyToCov
5、er(10,Close) 表示用當前Bar收盤價空頭買入10張合約,馬上發(fā)送委托。BuyToCover(5,0) 表示用現(xiàn)價空頭買入5張合約),馬上發(fā)送委托。 sell說明 產生一個多頭平倉操作。 (BK)語法 Sell(Numeric Share=0,Numeric Price=0,Bool Delay=False)參數(shù) Share 賣出數(shù)量,為整型值,默認為平掉當前所有持倉;Price 賣出價格,為浮點數(shù),默認=0時為使用現(xiàn)價(非最后Bar為Close);Delay 賣出動作是否延遲,默認為當前Bar發(fā)送委托,當Delay=True,在下一個Bar執(zhí)行。 備注 產生一個多頭平倉操作,無返回
6、值,該函數(shù)僅支持交易指令。該函數(shù)僅用于多頭平倉,其處理規(guī)那么如下:如果當前持倉狀態(tài)為持平,即MarketPosition = 0 時,該函數(shù)不執(zhí)行任何操作。如果當前持倉狀態(tài)為空倉,即MarketPosition = -1 時,該函數(shù)不執(zhí)行任何操作。如果當前持倉狀態(tài)為多倉,即MarketPosition = 1 時,如果此時Share使用默認值,該函數(shù)將平掉所有多倉,到達持平的狀態(tài),否那么只平掉參數(shù)Share的多倉。 例如 在MarketPosition=0的情況下:Sell(50,10.2,1) 表示用10.2的價格賣出50張合約,延遲到下一個Bar發(fā)送委托。Sell(10,Close) 表示
7、用當前Bar收盤價賣出10張合約,馬上發(fā)送委托。Sell(5,0) 表示用現(xiàn)價賣出5張合約,馬上發(fā)送委托。 sellshort說明 產生一個空頭建倉操作。 語法 SellShort(Numeric Share=0,Numeric Price=0,Bool Delay=False)參數(shù) Share 賣出數(shù)量,為整型值,默認為使用系統(tǒng)設置參數(shù);Price 賣出價格,為浮點數(shù),默認=0時為使用現(xiàn)價(非最后Bar為Close);Delay 賣出動作是否延遲,默認為當前Bar發(fā)送委托,當Delay=True,在下一個Bar執(zhí)行。 備注 產生一個空頭建倉操作,無返回值,該函數(shù)僅支持交易指令。該函數(shù)僅用于空
8、頭建倉,其處理規(guī)那么如下:如果當前持倉狀態(tài)為持平,即MarketPosition = 0 時,該函數(shù)按照參數(shù)進行空頭建倉。如果當前持倉狀態(tài)為多倉,即MarketPosition = 1 時,該函數(shù)首先平掉所有多倉,到達持平的狀態(tài),然后再按照參數(shù)進行空頭建倉。如果當前持倉狀態(tài)為空倉,即MarketPosition = -1 時,該函數(shù)將繼續(xù)建倉,但具體是否能夠成功建倉要取決于系統(tǒng)中關于連續(xù)建倉的設置,以及資金,最大持倉量等限制。 例如 在MarketPosition=0的情況下:SellShort(50,10.2,1) 表示用10.2的價格空頭賣出50張合約,延遲到下一個Bar發(fā)送委托。Sell
9、Short(10,Close) 表示用當前Bar收盤價空頭賣出10張合約,馬上發(fā)送委托。SellShort(5,0) 表示用現(xiàn)價空頭賣出5張合約,馬上發(fā)送委托。對應的BPK,SPK,你清楚了嗎函數(shù)名 描述 Buy 平掉所有空頭持倉,開多頭倉位。(*BPK*)Sell 平掉指定的多頭持倉。 SellShort 平掉所有多頭持倉,開空頭倉位。 (*SPK*)BuyToCover 平掉指定的空頭持倉。 獲得當前持倉狀態(tài),太妙了MarketPosition說明 獲得當前持倉狀態(tài)。 語法 Integer MarketPosition()參數(shù) 無 備注 獲得當前持倉狀態(tài),返回值為整型,該函數(shù)僅支持交易指令
10、。返回值定義如下:-1 當前位置為持空倉0 當前位置為持平1 當前位置為持多倉 例如 無內建平倉指令-精華之特色內建平倉指令除了上節(jié)的Sell和BuyToCover可以進行平倉之外,TradeBlazer公式提供了額外的八種平倉函數(shù),通過合理的應用內建平倉函數(shù),可以幫助您有效的鎖定風險并及時獲利。您可以組合使用內建平倉函數(shù),也可以在自己的交易指令中調用內建平倉函數(shù)進行平倉,八個內建平倉函數(shù)如下:函數(shù)名 描述 SetExitOnClose 該平倉函數(shù)用來在當日收盤后產生一個平倉動作,將當前所有的持倉按當日收盤價全部平掉。 SetBreakEven 該平倉函數(shù)在獲利條件滿足的情況下啟動,當盈利回落
11、到達保本時產生平倉動作,平掉指定的倉位。 SetStopLoss 該平倉函數(shù)在虧損到達設定條件時產生平倉動作,平掉指定的倉位。 SetProfitTarget 該平倉函數(shù)在盈利到達設定條件時產生平倉動作,平掉指定的倉位。 SetPeriodTrailing 該平倉函數(shù)在盈利回落到設定條件時產生平倉動作,平掉指定的倉位。 SetPercentTrailing 該平倉函數(shù)在盈利回落到設定條件時產生平倉動作,平掉指定的倉位。 SetDollarTrailing 該平倉函數(shù)在盈利回落到設定條件時產生平倉動作,平掉指定的倉位。 SetInactivate 該平倉函數(shù)在設定時間內行情一直在某個幅度內波動時
12、產生平倉動作,平掉指定的倉位。 關于ExitPosition上述多個平倉函數(shù)都用到了參數(shù)ExitPosition,作為平倉函數(shù)倉位控制的重要參數(shù),有必要對該參數(shù)進行單獨說明。ExitPosition是布爾型參數(shù),當ExitPosition=True時,表示將當前所有的持倉作為一個整體,根據其平均建倉本錢,計算各平倉函數(shù)的盈虧,當條件滿足時,會將所有倉位一起平掉;當ExitPosition=False時,表示單獨對每個建倉位置進行平倉,單獨計算各平倉函數(shù)盈虧時,當單個建倉位置條件滿足后,平掉該建倉位置即可。觸發(fā)單觸發(fā)單觸發(fā)單是交易開拓者特有的交易方式,觸發(fā)單是指用戶設置條件,將觸發(fā)單提交到交易開
13、拓者的交易效勞器,當設定條件滿足情況,交易效勞器會自動發(fā)送委托到交易所。觸發(fā)單可以幫助解決用戶盯盤的辛苦,及手動發(fā)單的速度問題。觸發(fā)單分為以下四種類型:吊買、吊賣、追買、追賣。每個觸發(fā)單在發(fā)送時需要輸入以下參數(shù):觸發(fā)價格:觸發(fā)單設定的條件價格,通過比擬現(xiàn)價和觸發(fā)價格確定是否下單。下單之后,該觸發(fā)單會從交易效勞器中刪除;執(zhí)行價格:條件滿足之后,發(fā)送委托的價格,設定為0可自動獲取當時的叫買/賣價;過期時間:設定觸發(fā)單的過期時間,到這個時間還沒有觸發(fā)的訂單會被設為過期,不再進行監(jiān)控。吊買吊買是指當現(xiàn)價向下跌破觸發(fā)價格,即按執(zhí)行價格產生一個即時買入委托單,如下列圖所示:吊賣吊賣是指當現(xiàn)價向上突破觸發(fā)價
14、格,即按執(zhí)行價格產生一個即時賣出委托單,如下列圖所示:追買追買是指當現(xiàn)價向上突破觸發(fā)價格,即按執(zhí)行價格產生一個即時買入委托單,如下列圖所示:追賣追賣是指當現(xiàn)價向下跌破觸發(fā)價格,即按執(zhí)行價格產生一個即時賣出委托單,如下列圖所示:修改或刪除觸發(fā)單當存在某個商品的觸發(fā)單,可通過雙擊帳戶管理的觸發(fā)單頁面的工程,翻開交易師,進行修改或刪除操作。您可以修改數(shù)量、觸發(fā)單類型、觸發(fā)價格、執(zhí)行價格、過期時間及止損獲利等,完成修改之后,點擊修改按鈕即可完成修改;您可以直接點擊刪除按鈕將該觸發(fā)單刪除。注意: 觸發(fā)單在發(fā)送之后將會生效,該委托單在效勞器上運行,此時您關閉程序或電腦不會影響觸發(fā)單的執(zhí)行。 SetPerc
15、entTrailing(2000,0.2,True); 又是一個寶SetPercentTrailing(2000,0.2,True); 當前所有持倉盈利在大于2000之后回落,當回落百分比到達20%之后,執(zhí)行所有持倉位置的百分比回落平倉。此時是計算所有持倉的盈利數(shù)SetPercentTrailing(1000,0.1,False); 當前持倉的某一個建倉位置的盈利大于1000之后回落,當回落百分比到達10%之后,執(zhí)行該持倉位置的百分比回落平倉。此時只計算該持倉位置的盈利 SetStopLoss(0,2000,True); 當前所有持倉虧損到達2000之后,執(zhí)行所有持倉位置的止損平倉。此時是計算
16、所有持倉的虧損數(shù)SetStopLoss(1,50, False); 當前持倉的某一個建倉位置每張合約的虧損到達50之后,執(zhí)行該持倉位置的止損平倉。此時只計算該持倉位置的每張合約虧損SetBreakEven(0,2000,True); 當前所有持倉的盈利到達2000之后,啟動所有持倉位置的保本平倉。此時是計算所有持倉的盈利數(shù)SetBreakEven(1,50, False); 當前持倉的某一個建倉位置每張合約的盈利到達50之后,啟動該持倉位置的保本平倉。此時只計算該持倉位置的每張約的盈利 精華中精華文華所沒有實現(xiàn)復雜策略工具一循環(huán)語句循環(huán)語句包括兩種表達方式:For和While。ForFor語句
17、是一個循環(huán)語句,重復執(zhí)行某項操作,直到循環(huán)結束。語法如下:For 循環(huán)變量 = 初始值 To 結束值TradeBlazer公式語句;循環(huán)變量為在之前已經定義的一個數(shù)值型變量,F(xiàn)or循環(huán)的執(zhí)行是從循環(huán)變量從初始值到結束值,按照步長為1遞增,依次執(zhí)行TradeBlazer公式語句。結束值必須大于或等于初始值才有意義,初始值和結束值可以使用浮點數(shù),但是在執(zhí)行過程中會被直接取整。只計算其整數(shù)局部。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。第一次執(zhí)行時,首先將循環(huán)變量賦值為初始值,然后判斷循環(huán)變量是否小于等于結束
18、值,如果滿足條件,那么執(zhí)行TradeBlazer公式語句,同時循環(huán)變量加1。接著重新判斷循環(huán)變量是否小于等于結束值,一直到條件為False,退出循環(huán)。例如,以下的用戶計算Price最近Length周期的和。ParamsNumericSeries Price(1);Numeric Length(10);VarsNumeric SumValue(0);Numeric i;Beginfor i = 0 to Length - 1SumValue = SumValue Price i ;Return SumValue;End如果希望For語句從大到小進行循環(huán),可以使用以下的語法:For 循環(huán)變量 =
19、初始值 DownTo 結束值TradeBlazer公式語句;For-DownTo讓循環(huán)變量從結束值每次遞減1直到等于結束值,依次調用TradeBlazer公式語句執(zhí)行,初始值必須大于或等于結束值才有意義。For語句是比擬常用的一種循環(huán)控制語句,它應用于知道循環(huán)次數(shù)的地方,很多內建用戶函數(shù)中都使用For語句來完成相應的功能,比方Summation,Highest,Lowest,LinearReg等。WhileWhile語句在條件為真的時候重復執(zhí)行某一項操作。即,只要條件表達式的值為真(True)時,就重復執(zhí)行某個動作。直到行情信息改變以致條件為假(False)時,循環(huán)才結束。語法如下:While
20、 (Condition)TradeBlazer公式語句;Condition是一個邏輯表達式,當Condition為True的時候,TradeBlazer公式語句將會被循環(huán)執(zhí)行,Condition可以是多個條件表達式的邏輯組合,Condition必須用()括起來。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。例如,以下的公式用來計算要產生大于100000成交量需要最近Bar的個數(shù):VarsNumeric SumVolume(0);Numeric Counter (0);BeginWhile (SumVolum
21、e < 100000)SumVolume = SumVolume VolCounterCounter = Counter 1;End首先,我們定義兩個變量SumVolume和Counter,并將其默認值設為0。當SumVolume <100000這個表達式為True時,While內的TradeBlazer公式語句一直被調用,將前Counter個Bar的Vol加到SumVolume中,當SumVolume大于等于100000時,退出循環(huán)。在使用While循環(huán)的時候,有可能會遇到循環(huán)一直執(zhí)行,永遠不能退出的情況,這種情況我們稱之為死循環(huán),比方下面的語句;While (True)Trad
22、eBlazer公式語句;在這種情況下,循環(huán)將一直執(zhí)行,導致程序不能繼續(xù)工作,在這種情況,我們可以使用Break來跳出循環(huán),詳細情況參加下節(jié)。針對上節(jié)的例子,要想從死循環(huán)中跳出,我們可以在循環(huán)之中添加Break語句,如下:While (True)TradeBlazer公式語句;If (Condition)Break;循環(huán)在每次執(zhí)行后,都將判斷Condition的值,當Condition為True時,那么執(zhí)行Break語句,跳出整個循環(huán)。Continue有的時候在循環(huán)中,我們可能希望跳過后面的代碼,進入下一次循環(huán),在這種情況下,可以使用Continue語句來到達目的,如下:While (Condi
23、tion1)TradeBlazer公式語句1;If (Condition2)Continue;TradeBlazer公式語句2;當Condition1滿足時,循環(huán)被執(zhí)行,在執(zhí)行完TradeBlazer公式語句1后,將判斷Condition2的值,當Condition2為True,將跳過TradeBlazer公式語句2,重新判斷Condition1的值,進入下一次循環(huán)。否那么將繼續(xù)執(zhí)行TradeBlazer公式語句2。 精華中精華文華所沒有實現(xiàn)復雜策略工具二控制語句TradeBlazer公式支持兩大類的控制語句:條件語句和循環(huán)語句。條件語句條件語句包括以下四類表達方式:IfIf語句是一個條件語句
24、,當特定的條件滿足后執(zhí)行一局部操作。語法如下:If (Condition)TradeBlazer公式語句;Condition是一個邏輯表達式,當Condition為True的時候,TradeBlazer公式語句將會被執(zhí)行,Condition可以是多個條件表達式的邏輯組合,Condition必須用()括起來。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。例如,您可以計算圖表中上升缺口當前Bar的開盤價高于上一個Bar的最高價出現(xiàn)了多少次,只要在圖表中使用If語句,當找到一個滿足條件的Bar時,即條件為真時,變
25、量加1,腳本如下:VarsNumericSeries Counter(0);BeginIf ( Open > High1)Counter = Counter1 1;.End在TradeBlazer公式中,If語句被廣泛使用,如K線型態(tài)和特征走勢,都需要大量的使用If語句,當條件滿足的時候,在滿足條件的Bar上面進行標記。例如,下面的語句就是特征走勢的例子:If(High > High1 AND Low < Low1)PlotNumeric(High,"Outside Bar");If語句在不是用括號的情況,只執(zhí)行下面的第一條語句,如下的語句,Alert不會
26、只在條件為True時執(zhí)行,而是每次都執(zhí)行。If(High > High1 AND Low < Low1)PlotNumeric(High,"Outside Bar");Alert("Outside Bar");要想Alert只在條件為True時執(zhí)行,您需要按照下面的格式編寫:If(High > High1 AND Low < Low1)PlotNumeric(High,"Outside Bar");Alert("Outside Bar");If-ElseIf-Else語句是對指定條件進行判斷
27、,如果條件滿足執(zhí)行If后的語句。否那么執(zhí)行Else后面的語句。語法如下:If (Condition)TradeBlazer公式語句1;ElseTradeBlazer公式語句2;Condition是一個邏輯表達式,當Condition為True的時候,TradeBlazer公式語句1將會被執(zhí)行;Condition為False時,TradeBlazer公式語句2將會被執(zhí)行。Condition可以是多個條件表達式的邏輯組合,Condition必須用()括起來。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。例如,比
28、擬當前Bar和上一個Bar的收盤價,如果Close > Close1,Value1 = Value1 Vol;否那么Value1 = Value1 - Vol,腳本如下:If (Colse > Close1)Value1 = Value1 Vol;ElseValue1 = Value1 - Vol;If-Else-IfIf-Else-If是在If-Else的根底上進行擴展,支持條件的多重分支。語法如下:If (Condition1)TradeBlazer公式語句1;Else If(Condition2)TradeBlazer公式語句2;ElseTradeBlazer公式語句3;Co
29、ndition1是一個邏輯表達式,當Condition1為True的時候,TradeBlazer公式語句1將會被執(zhí)行,Condition1為False時,將會繼續(xù)判斷Condition2的值,當Condition2為True時,TradeBlazer公式語句2將會被執(zhí)行。Condition2為False時,TradeBlazer公式語句3將會被執(zhí)行。Condition1,Condition2可以是多個條件表達式的邏輯組合,條件表達式必須用()括起來。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。If-Els
30、e-If的語句可以根據需要一直擴展,在最后的Else之后再加If(Condition)和新的執(zhí)行代碼即可。當然您也可以省略最后的Else分支,語法如下:If (Condition1)TradeBlazer公式語句1;Else If(Condition2)TradeBlazer公式語句2;If-Else的嵌套If-Else的嵌套是在If-Else的執(zhí)行語句中包含新的條件語句,即一個條件被包含在另一個條件中。語法如下:If (Condition1)If (Condition2)TradeBlazer公式語句1;ElseTradeBlazer公式語句2;ElseIf (Condition3)Trad
31、eBlazer公式語句3;ElseTradeBlazer公式語句4;Condition1是一個邏輯表達式,當Condition1為True的時候,將會繼續(xù)判斷Condition2的值,當Condition2為True時,TradeBlazer公式語句1將會被執(zhí)行。Condition2為False時,TradeBlazer公式語句2將會被執(zhí)行。當Condition1為False的時候,將會繼續(xù)判斷Condition3的值,當Condition3為True時,TradeBlazer公式語句3將會被執(zhí)行。Condition3為False時,TradeBlazer公式語句4將會被執(zhí)行。Conditio
32、n1,Condition2,Condition3可以是多個條件表達式的邏輯組合,條件表達式必須用()括起來。TradeBlazer公式語句是一些語句的組合,如果TradeBlazer公式語句是單條,您可以省略,二條或者二條以上的語句必須使用。例如,在一個交易指令中,條件設置如下:當前行情上漲的時候,如果收盤價高于開盤價時,那么產生一個以收盤價買入1張合約;否那么產生一個以開盤價買入1張合約。當前行情沒有上漲的時候,如果收盤價高于開盤價,那么產生一個以收盤價賣出1張合約;否那么產生一個以開盤價賣出1張合約。腳本如下:If (Open > High1)If (Close>Open)Bu
33、y(1,Open);ElseBuy(1,Close);ElseIf (Close > Open)Sell(1,Open);ElseSell (1,Close); 接平倉東東SetDollarTrailing (2000,True); 當前所有持倉盈利在回落到達2000之后,執(zhí)行所有持倉位置的價值回落平倉。此時是計算所有持倉的盈利數(shù)SetDollarTrailing (1000,False); 當前持倉的某一個建倉位置的盈利在回落到達1000之后,執(zhí)行該持倉位置的價值回落平倉。此時只計算該持倉位置的盈利 說明 當日收盤全部平倉。 語法 SetExitOnClose()參數(shù) 無 備注 當日收
34、盤全部平倉,無返回值,該函數(shù)僅支持交易指令。在當日收盤之后以收盤價全部平倉,將持倉狀態(tài)變?yōu)槌制剑摵瘮?shù)僅用于歷史數(shù)據測試,在小于1日線的周期情況下,該操作在建倉日期的最后一個Bar上執(zhí)行,在1日線及以上的周期中,該操作以建倉Bar的收盤價在同一Bar內執(zhí)行。在自動交易中因為收盤之后不一定能夠保證成功發(fā)送委托,所以該函數(shù)延遲到第二天的開盤發(fā)送。PositionProfit說明 獲得當前持倉位置的浮動盈虧。 語法 Numeric PositionProfit()參數(shù) 無 備注 獲得當前持倉位置的浮動盈虧,已考慮交易費用,返回值為浮點數(shù),該函數(shù)僅支持交易指令。只有當MarketPosition !=
35、 0時,即有持倉的狀況下,該函數(shù)才有意義,否那么返回0。當前持倉的平均建倉價格說明 獲得當前持倉的平均建倉價格。 語法 Numeric AvgEntryPrice()參數(shù) 無 備注 獲得當前持倉的平均建倉價格,返回值為浮點數(shù),該函數(shù)僅支持交易指令。 例如 無當前持倉位置的每手浮動盈虧ContractProfit說明 獲得當前持倉位置的每手浮動盈虧。 語法 Numeric ContractProfit()參數(shù) 無 備注 獲得當前持倉位置的每手浮動盈虧,已考慮交易費用,返回值為浮點數(shù),該函數(shù)僅支持交易指令。只有當MarketPosition != 0時,即有持倉的狀況下,該函數(shù)才有意義,否那么返回
36、0。獲得當前的可用資金CurrentCapital說明 獲得當前的可用資金。 語法 Numeric CurrentCapital()參數(shù) 無 備注 獲得當前的可用資金,已考慮交易費用,返回值為浮點數(shù),該函數(shù)僅支持交易指令。根據參數(shù)進行獲利平倉操作SetProfitTarget (0,2000,True); 當前所有持倉盈利到達2000之后,執(zhí)行所有持倉位置的獲利平倉。此時是計算所有持倉的盈利數(shù)SetProfitTarget (1,50, False); 當前持倉的某一個建倉位置每張合約的盈利到達50之后,執(zhí)行該持倉位置的獲利平倉。此時只計算該持倉位置的每張合約盈利 第一課:實例之戰(zhàn)一個文華交易
37、系統(tǒng)的移植例子多空趨勢-交易系統(tǒng)之文華的公式腳本:Copy to clipboard - CODE:MA1:=EMA(CLOSE,16);MA2:=EMA(CLOSE,35),COLORYELLOW;MA3:=EMA(CLOSE,60);MA4:=REF(HIGH,1);LOWV:=LLV(LOW,9);HIGHV:=HHV(HIGH,9);RSV:=EMA(CLOSE-LOWV)/(HIGHV-LOWV)*100,3);K:=EMA(RSV,3);D:=MA(K,3);MV5:=MA(VOL,5);KK:=REF(K,1);PP:=REF(LOW,1);VAR3:=(2*CLOSE HIGH
38、 LOW)/4;VAR4:=LLV(LOW,33);VAR5:=HHV(HIGH,33);ZL:=EMA(VAR3-VAR4)/(VAR5-VAR4)*100,17);SH:=EMA(0.667*REF(ZL,1) 0.333*ZL,2);LC:=REF(CLOSE,1);RSI:=SMA(MAX(CLOSE-LC, 0), 6, 1)/SMA(ABS(CLOSE-LC), 6, 1)*100;CROSS(CLOSE,MA1)&&(K>D)&&(ZL>SH)|CROSS(MA1,MA2)&&(ZL>SH)&&(V
39、OL>1.25*MV5)&&(K>D)|CROSS(K,D)&&(CLOSE>MA1)&&(ZL>SH)|CROSS(RSI,70),BK;CROSS(PP,CLOSE)&&(D>K)&&(SH>ZL)|CROSS(D,K)&&(CLOSE<MA1)&&(MA1<MA2)|CROSS(KK,K)&&(SH>ZL),SK;CROSS(D,K)|(CLOSE<MA1*1.001),SP;CROSS(K,D)|(C
40、LOSE>MA1*1.001),BP;TradeBlazer公式代碼:Copy to clipboard - CODE:/-/ 簡稱: Test/ 名稱: 多空趨勢交易系統(tǒng)/ 類別: 交易指令/ 類型: 其他/ 輸出:/-ParamsNumeric Length1(16);Numeric Length2(35);Numeric Length3(9);Numeric Lots(1);VarsNumericSeries Value1;NumericSeries Value2;Numeric LowestValue;NumericSeries Value5;NumericSeries RSV;
41、NumericSeries KValue;NumericSeries DValue;Numeric AvgVol5;NumericSeries CloseTmp1;NumericSeries CloseTmp2;NumericSeries RSIValue;NumericSeries PreLow;NumericSeries PreKValue;Numeric Lowest33Value;NumericSeries VarTmp1;NumericSeries VarTmp2;NumericSeries ZL;Numeric SH;BeginValue1 = XAverage(Close,Len
42、gth1);Value2 = XAverage(Close,Length2);/取兩條均線的值LowestValue = Lowest(Low,Length3);/取最低值Value5 = (CLOSE-LowestValue)/(Highest(High,Length3)-LowestValue)*100;RSV = XAverage(Value5,3);KValue = XAverage(RSV,3);DValue = Average(KValue,3);PreKValue = KValue1;PreLow = Low1;AvgVol5 = Average(Vol,5);Lowest33V
43、alue = Lowest(Low,33);VarTmp1 =(2*CLOSE HIGH LOW)/4 - Lowest33Value )/(Highest(High,33) - Lowest33Value) * 100;ZL = XAverage(VarTmp1,17);VarTmp2 = 0.667*ZL1 0.333*ZL;SH = XAverage(VarTmp2,2);CloseTmp1 = Max(Close - Close1, 0);CloseTmp2 = Abs(Close - Close1);RSIValue = WAverage(CloseTmp1,6)/WAverage(
44、CloseTmp2,6) *100;/以上為KD局部只要如何換書寫方式就可了,higest =hhv lowest=llv xAverager=ma / Buy什么時做買入動作,條件If( (CrossOver(Close,Value1 ) && (KValue > DValue) && (ZL>SH) Or(CrossOver(Value1,Value2) && (ZL>SH) && (Vol > 1.25 * AvgVol5) && (KValue > DValue) Or(Cro
45、ssOver(KValue,DValue) && (Close > Value1) && (ZL>SH) Or(CrossOver(RSIValue,70)/條件Buy(Lots,Close);/ SellShort 什么作賣出動作If( (CrossOver(PreLow,Close) && (KValue > DValue ) && (SH>ZL) ) Or(CrossOver(DValue,KValue) && (Close < Value1) && (Value
46、1 < Value2) Or(CrossOver(PreKValue,KValue)&& (SH>ZL)/條件SellShort(Lots,Close);/ Sell 什么做多平動作If(CrossOver(DValue,KValue) | Close < Value1 * 1.001)/條件Sell;/ BuyToCover什么進個做空平動作If(CrossOver(KValue,DValue) | Close > Value1 * 1.001)/條件BuyToCover;End/-/ 編譯版本 GS2004.06.12/ 用戶版本 2007-06-2
47、5 10:37/ 版權所有 TradeBlazer/ 更改聲明 TradeBlazer Software保存對TradeBlazer平臺/ 每一版本的TrabeBlazer公式修改和重寫的權利/- 第二課:交易思想是靈魂要是打算根據3日的上下價平倉呢?想法如下想實現(xiàn)這樣一個一個想法:價格突破5天最高價,開多倉,把當天和前一天的K線做比擬,取兩日的最低價格做為止損,當價格突破3日最低價時,平多倉。價格突破5日最低價,開空倉,把今天和 .你看看哦,代碼大致如此: ParamsvarsNumericSeries EntryHi;NumericSeries EntryLo;NumericSeries
48、ShortStop;NumericSeries LongStop;NumericSeries SellHi;NumericSeries SellLo;Numeric myEntryPrice;Numeric myExitPrice;begin/入場點,開多和開空點,突破5天最高或最低EntryHi = Highest(high1,5);EntryLo = Lowest(low1,5);/離場點,止盈點,三天較高或較低SellHi=Highest(high1,3);SellLo= Lowest(low1,3);/止損點,兩天較高或較低ShortStop= Highest(high1,2);Lon
49、gStop=Lowest(low1,2);if(MarketPosition =0)If(CrossOver(high,EntryHi)myEntryPrice = min(high,EntryHi );myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);Buy(0,myEntryPrice);If(CrossUnder(Low,EntryLo )myEntryPrice = max(low,EntryLo );myEntryPrice = IIF(myEntryPrice > Open, Open,myEntryP
50、rice);SellShort(0,myEntryPrice);If(MarketPosition =1)if (CrossUnder(Low,LongStop)myExitPrice = max(low,LongStop );myExitPrice = IIF(myExitPrice > Open, Open,myExitPrice);Sell(0,myExitPrice);Elseif (CrossUnder(Low,SellLo)myExitPrice = max(low,SellLo );myExitPrice = IIF(myExitPrice > Open, Open,
51、myExitPrice);Sell(0,myExitPrice);If(MarketPosition =-1)if (CrossOver(high,ShortStop)myExitPrice = min(high,ShortStop );myExitPrice = IIF(myExitPrice < Open, Open,myExitPrice);BuyToCover(0,myExitPrice);Elseif (CrossOver(high,SellHi)myExitPrice = min(high,SellHi );myExitPrice = IIF(myExitPrice <
52、 Open, Open,myExitPrice);BuyToCover(0,myExitPrice);end 第三課:雙均線策略/ 以下為均線交易系統(tǒng),5日均線上穿20均線為買入,5日均線下穿20均線為買出Params / 宣告參數(shù)定義Numeric Length1(5); / 5日均線的參數(shù)值Numeric Length2(20); / 20日均線的參數(shù)值Numeric Lots(1); / 默認的交易數(shù)量,您可以通過公式計算來產生Vars / 宣告變量定義NumericSeries MA1; / 中間變量,用來保存5日均線的值,因為CrossOver的輸入參數(shù)需要序列變量,因此定義為序列變
53、量NumericSeries MA2; / 中間變量,用來保存20日均線的值,因為CrossOver的輸入參數(shù)需要序列變量,因此定義為序列變量Begin / 宣告公式正文開始MA1 = AverageFC(Close,Length1); / 求出5日均線值,并將值賦給MA1MA2 = AverageFC(Close,Length2); / 求出20日均線值,并將值賦給MA2If(CrossOver(MA1,MA2) / 當出現(xiàn)5日均線上穿20均線時買入Buy(Lots,Close); / 用當前Bar的收盤價買入,詳細的Buy函數(shù)調用請參見幫助文件If(CrossUnder(MA1,MA2)/
54、 當出現(xiàn)5日均線下穿20均線時賣出Sell; / Sell不用參數(shù)時會自動平掉所有倉位,詳細的Sell函數(shù)調用請參見幫助文件End / 宣告公式正文結束 問題集中一下,雙策略收盤價格突破5天均線,開倉,跌破5天線平倉;收盤價格突破25天均線,開倉,跌破25天線平倉;各平各的倉,不可亂平.是這樣解決如果您希望兩個交易指令不相互平倉,那直接開兩個圖表分別執(zhí)行交易指令就可以啦!你舉例的交易指令除了參數(shù)還都是一樣的。所以只需要更改兩個圖表中交易指令的參數(shù)就可以解決了。操作步驟如下:1、新建一個交易指令,假定命名為Demo:Copy to clipboard - CODE:Params / 宣告參數(shù)定義Numeri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際汽車零部件出口代理協(xié)議
- 2025年度私對私養(yǎng)老產業(yè)股權收購協(xié)議
- 2025年度攪拌站建設攪拌機采購與運輸合同
- 2025年度建筑保溫材料采購合同
- 未來十年中國移商支付的五大發(fā)展趨勢預測報告
- 2025年度豪華酒店婚宴套餐預訂合同
- 生態(tài)文明教育與旅游業(yè)的可持續(xù)發(fā)展關系
- 2025年度海洋貨物運輸保險合同樣本(全新推出)
- 統(tǒng)編教材部編人教版初中道德與法治八年級下冊《1 第七課 第1課時 自由平等的真諦》聽課評課記錄
- 未來移動支付技術的創(chuàng)新與趨勢預測
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質量驗收規(guī)范檢驗批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產檢查表
- 辦公家具項目實施方案、供貨方案
- 七年級英語下冊閱讀理解10篇
- 節(jié)后開工收心會
- 設計質量、進度保證措施
評論
0/150
提交評論