Sunday, May 29, 2016

半自動化的 趨勢線 交易策略






+

半自動化的趨勢線交易策略 下圖顯示了用戶繪製趨勢線控制半自動化的策略來執行所需的交易:(1)賣出止損訂單輸入(紅色虛線TL),(2)盈利目標(純綠色TL),和(3) 一個停損買單為止損(點綴綠色TL): 定義用戶友好的趨勢線 經典繪製趨勢線提供了用於識別一個趨勢的改變或突破的最佳指標之一。 出於這個原因,它們在導向半自動化交易策略使用正變得越來越流行。 各種方法已提出通過使用趨勢線手工畫出的圖上以觸發訂單。 例如,趨勢線的數量或者其色彩可用於識別所需的訂單類型(限價買入,買入止損,賣出限價,賣出止損)。 用來定義趨勢線的任何系統的理想特性是,它是合乎邏輯的,直觀的和用戶友好的: 但是,使用趨勢線號來確定訂單類型所需的是有問題的。 貿易商必須繪製所需趨勢線以特定的順序,因為它們被添加到一個圖表趨勢線號已分配順序。 該交易員必須保證在圖表上不存在其他的趨勢線,如先前繪製的趨勢線可以已經漂移出來視圖圖表上顯示的數據的範圍的。 如果做錯了,並趨勢線被刪除,然後重新繪製,趨勢線的數字可能不再匹配相關聯的訂單類型和策略可能不會像預期的那樣。 使用顏色來標識所需訂單類型有點更加人性化,不容易交易錯誤。 確定具體的顏色是代表特定類型的指令後(限價買入,買入止損,賣出限價,賣出止損。等),功能,如內置Tradestation功能TL_FindColor可用於定位的趨勢線數 第一個趨勢線匹配這兩個顏色之一。 不幸的是,該明亮顯示一個圖上的顏色的數量是有限的,較深的顏色不容易看到。 同時使用趨勢線的顏色和樣式(實線,虛線,點線等)來識別不同的訂單類型似乎有一定的優勢: 看樣訂貨(限價買入,買入止損)可分配相同的顏色,但不同的風格,創造出一個更人性化的分配貸款本身更短的學習曲線和意外事故的風險較低的​​選擇不正確的顏色。 同樣,訂單共享等類似的特性(買入止損,賣出止損)可分配相同的風格(如虛線趨勢線),但不同的顏色。 隨著多種樣式可用,更少的顏色需要使用允許使用最亮,最明顯的顏色趨勢線和顏色和樣式組合的直覺和邏輯分配,很容易記住。 最重要的是交易策略的操作可以減少到四階類型,限價買入,買入止損,賣出限價和賣出止損。 如下: 為了使趨勢線交易更加直觀和人性化,顏色和樣式可用於確定這四種訂單類型相似的特徵,如以下安排: 交易實例 趨勢線打破入口 人們常常認為,突破貿易為水平移動渠道價格及以上的頻道watiing在任一方向突破下方水平止損訂單。 然而,更頻繁的使用趨勢線入口是一個顯著趨勢突破。 當然字顯著是相對的,但問題是要找到一種趨勢,已持續了足夠棒該使得一旦趨勢斷回撤將足以產生利潤。 原油(CLK09) 上圖顯示了約2美元的原油期貨(CLK09)有上升的趨勢。 這不是一個很大的舉動為油,但一回撤大到足以產生利潤預計當這種趨勢被打破。 阿紅虛線趨勢線已經繪以下的價格走勢表示希望賣出止損單。 當這條趨勢線被擊中,一個合約將被賣空。 由趨勢線引發的空頭頭寸 不久以後,上面的圖表中,在賣出止損被打,並採取短倉: 添加止損止盈目標趨勢線 由於下移的進行下面的圖表中,買入止損(綠色虛線)趨勢線添加,較初始止損。 限價買入(綠色實)趨勢線被加入,代表一個潛在的盈利目標。 止損趨勢線angeled向下跟風 在上面的圖表中,下降趨勢變得進一步確立。 在買入止損(綠色虛線)趨勢線向下傾斜,甚至創造一個破止損。 目前還不知道是否這條趨勢線或盈利目標將首先打擊。 小回撤打的買入止損趨勢線,收出貿易。 由於價格行動繼續下去,小回撤打的買入止損趨勢線,而貿易收出了小賺$ 370 區間交易 期銅HGK09是呈下降趨勢,然後開始移動橫盤整理。 一個潛在的區間交易機會的預期。 保護性止損趨勢線畫的上方和下方新的交易區間。 購買和出售限價趨勢線在交易範圍內添加,上面。 的策略性質被調節以允許多個交易的範圍交易場景,通過設定最大交易以大量(99)和MaxLimitReversals設置為類似大量(99): 該戰略已開啟並開始交易。 隨著時間的推移,幾個系列的交易發生。 最終,價格將升高,並觸發止損趨勢線以上的交易區間停止進一步的交易。 戰略績效的分析表明顯著的利潤來自這種方法。 減去第2交易($ 7,333),這是歷史的酒吧在建立戰略實現了利潤後,淨營業利潤為$ 20,000個 - $ 7,333 = $ 12,666。 主程序 主程序被分成兩部分,包含代碼必須執行(1)與每蜱,和(2)在每個條的末端。 每個替加工區 這部分必須與每個蜱被執行,並完成以下操作: 確定市場地位。 確定實時數據啟動時。 如果RealTimeOnly已經指定,則確定當實時數據可用,並通知策略開始處理交易。 確定是否存在已在位置的變化。 如果位置已經改變,過程中使用的方法ProcessPositionChange這種變化。 若要處理創建位置的變化,三分量方法:(1)確定的順序剛剛執行導致位置變化(方法OrderExecuted),(2)保證止損反轉訂單完成的位置逆轉(方法StopReversalCompletion)。 (3)任何位置的變化(方法SetStrategyLogic)調整後的戰略邏輯。 這些將在下面更詳細描述的。 檢查用戶移動了過去ReCalcSeconds秒內的任何活動的趨勢線的每一個。 如果用戶更改策略運行時趨勢線的位置,新的趨勢線數值是由法TLCalcValue計算,新的價值體現在相應的策略產生的訂單。 趨勢線的斜率也被重新計算,此時,由於用戶可能也發生了變化趨勢線的斜率為好。 提交基於當前活躍的趨勢線的所有訂單,使用方法ProcessTradeOrders。 方法ProcessPositionChange組件 方法OrderExecuted 確定該訂單剛剛執行的是比人們想像的更複雜。 當限價被擊中,沒有保證的限價令將被執行。 類似地,如果止損訂單被轉發到Tradestation服務器,價格擊中止損價格仍不足以確定是否執行,因為訂單輸入設定的用於中止觸發由用戶設置的停止順序不是由策略已知的。 方法OrderExecuted確定哪些訂單只是由最後一跳的價格比較的各種活動訂單值執行。 最接近最後蜱價格的順序被假設為觸發位置變化的順序。 這非常適用於極限和停止orers。 市場訂單,當stategy需要讓他們有承擔立即執行。 因此,剛執行的命令,包含在變量ID_Order。 是硬編碼時,市場秩序issed。 方法StopReversalCompletion 有一個有據可查的問題,真正的postiion具有戰略位置的同步化損失,當止損定單試圖扭轉現有的位置。 這是因為戰略打破了顛倒順序分成兩個部分。 例如,扭轉了多頭頭寸的時候,該戰略將到SellShort下吧LimitValue限制聲明作出反應,生成兩個單獨的命令:(1)賣下吧LimitValue限制(收出長倉),和(2)SellShort下一頁 酒吧LimitValue限制。 在歷史的酒吧,這兩個命令沒有問題的執行。 然而,在真實的時間條,第一順序被執行,和第二級一般取消。 我的監測電流MarketPosition和確定的最新順序被執行,可以確定如果位置的所需反轉實際上已經完成。 有兩種解決方案,以確保訂單反向使用的是成功地完成了止損單的位置。 第一解決方案是使用代碼,並且這是方法StopReversalCompletion的目的。 如果顛倒位置的目的,那麼變量逆轉將是真實的。 如果位置從短或長至平面位置的變化,則該反轉尚未完成。 在這種情況下,方法StopReversalCompletion將isuse相應的市場秩序,完成逆轉。 第二種方法是這樣實現的設置的策略性質如下: 格式 - 所有的策略 - 自動化選項卡 直接TradeStation訂單執行網絡發送生成的策略止損訂單,並 始終持有TradeStation訂單執行網絡的停止服務器上的止損訂單,即使執行目標本身支持止損單。 如果上述策略格式設置被使用,則方法StopReversalCompletion內韋爾需要調用。 這第二個方法是推薦的方法,並且假定用戶將使用這些設置。 由於這個原因,在調用方法StopReversalCompletion已被註釋掉主程序。 如果用戶不希望使用這些格式 - 所有的策略設置,然後調用該方法的註釋去掉主程序。 方法SetStrategyLogic 方法SetStrategyLogic負責執行下面的交易規則: 買入止損不能被擊中一次以上策略運行。 買入止損訂單可能被用來進行交易時的價格突破了價格​​間斷的交易通道,或當出了下降的趨勢。 這樣的止損單只能在策略運行期間被打一次。 這條規則是為了防止其中第二個命令,如果價格走勢徘徊跌破這條趨勢線,第二次通過它從下面將要產生的情況。 據推測,在用戶打算這樣的命令,以執行一次。 如果用戶想發出第二BuyStop令後的第一個交易已經關閉了,在BuyStop趨勢線可以移動到新的位置,然後刷新著CTL-R的戰略。 這將恢復所有有效的趨勢線圖表上,以積極的狀態產​​生新的交易。 賣出止損不能被擊中一次以上策略運行。 的基本原理是相同的如項(1),除了在貿易的方向是相反的。 限價單不能超過一次的策略,如果變量ReverseOnLimitOK =假執行更多。 如果交易者不打算扭轉他的位置,那麼當限價單撞擊它要么是進入貿易或出口貿易作為獲利目標。 一旦這條趨勢線已經完成了它的功能(入口或出口),它不應該觸發額外的交易,如果價格徘徊回落至趨勢線。 然而,當它是需要的範圍內貿易來回2價格水平之間,則ReverseOnLimitOK =真被使用。 在這種情況下,限價訂單可以執行多次。 的策略可能不會進入第二個貿易與第二止損單。 交易輸入過程中如果有任何停止的趨勢線被擊中發生,那麼任何剩餘停止的趨勢線保持活躍僅供貿易出口。 沒有剩餘的止動趨勢線可以用於第二交易條目。 例如,假設一個用戶設置了兩個突破掛單被包圍一個BuyStop訂單高於當前價格低於目前的價格SellStop訂單。 所述用戶的意圖是在一個方向或另一個,但不是兩個方向進入。 假如這個順序被手動輸入,將它設置為OCO訂單(一個取消的除外)。 規則#3基本完成在代碼中OCO邏輯。 一旦被執行托架順序的一側,另一側是不允許執行。 該代碼通過設置一個開關,StopEntryOK,假一次交易是用止損單輸入實現這一目的。 這樣可以防止使用止損單,從而有效地消除了相反的止損訂單的任何進一步的條目。 但是,它使用了相反的止損單,如果價格從來沒有達到盈利目標,而是改變方向允許退出交易。 如果現有的位置被平而不是止損本末倒置,然後停止所有進一步的訂單處理。 當停止被擊中,而在一個位置,它作為一個止損退出交易。 一旦這種類型的站被擊中,如果位置是採取扁平,而不是反轉則策略應該立即停止,應該不會產生任何進一步的命令。 在這種情況下,出現在圖表上的策略將標籤從黃色變成紅色,警告,策略不再處理訂單的用戶。 如果用戶試圖使用這種止損單所指定輸入參數MaxStopReversals扭轉位置= 1,則止損單將扭轉貿易和策略處理將繼續下去,直到所有其他正在運行的命令退出的位置已經被執行。 如果兩個止損單被擊中(BuyStop和SellStop)然後停止所有進一步的交易。 如果這兩個站被擊中,然後一人打進入該行業,而其他被擊中退出交易為止損。 第二站打一定要止損,因此應停止進一步的交易。 不要讓不是由用戶輸入的參數MaxLimitReversals和MaxStopReversals允許更多的止損訂單或限價訂單逆轉。 不要產生更多的交易不是由用戶輸入參數MaxTrades允許的。 MaxTrades是交易策略允許採取自己關閉前的數目。 該值與TS保留字TotalTrades在戰略上處理任何訂單前。 只有繼續處理,如果TotalTrades< MaxTrades。 在這種情況下,出現在圖表上的策略將標籤從黃色變成紅色,警告,策略不再處理訂單的用戶。 年底棒材加工區 條加工端包括下列任務: 方法StrategyInitialize(只執行一次) 創建將在圖表上顯示的輸入參數的標籤變量 識別所有有效的趨勢線,使用方法TLValid。 有效的趨勢線是指其色彩和風格相匹配的一個定義的訂單類型的。 因為趨勢線的斜率不歷史條的處理過程中發生變化,斜率只需要一次的每個趨勢線確定,並且還計算通過方法TLValid。 實時桿必須被不同的處理,因為用戶可能策略的執行過程中移動的一個或多個趨勢線,這可能會改變其斜率。 趨勢線的值和斜率重新計算在主程序中的每一個節拍處理部分的處理,在由輸入參數ReCalcSeconds確定的頻率。 測試重複的趨勢線為同一訂單類型(BuyLimit,BuyStop,SellLimit,SellStop)。 先前在圖上繪製一個曲線圖,現在可能是圖表的顯示區域之外,用戶可能不知道它的存在。 重複趨勢線往往指示一個用戶錯誤,需要重複的檢測,以確保交易者不會無意引起意外的交易的執行。 確定的任何有效的趨勢線最早的開始日期。 沒有必要為策略,以產生的任何命令,直到CurrentBar到達的最早出現的趨勢線的開頭的日期和時間。 通過識別這個開始日期和時間,在此日期之前所有的酒吧,可以繞過,產生更大的效益。 StrategyOK。 該切換策略,開始處理訂單,設置為true,當當前條到達最早出現趨勢線的開始日期和時間。 設置戰略位置,在輸入參數SetStrategyPosition指定的任何現有的位置上。 雖然設置格式化參數採用的經常賬戶真實世界的地位也將做到這一點同步化,它沒有這樣做,直到剛剛才實時酒吧開始出現。 因此,該戰略不具備酒吧的歷史位置,所處的歷史方位放置一路攀升到第一實時吧知識。 通過設置早在圖表的開始,歷史的戰略地位,戰略意識到在所有的歷史吧這個位置,並且將歷史酒吧,以及實時的酒吧為繪製所有有效的趨勢線正常交易。 確定哪些趨勢線被激活,使用方法TLActive。 一個趨勢線被認為是活躍在當前條到達的開始日期和時間,這條趨勢線。 在這一點上,與此趨勢線(BuyLimitOK,BuyStopOK,SellLimitOK或SellStopOK)相關聯的訂單變量設置為true。 同樣,如果一個趨勢線命中,已經生成了相關聯的順序,然後後,趨勢線被去激活。 這避免了趨勢線的處理之前,它的開始日期和時間,或已功成身退後,允許策略運行得更快。 計算下一個欄值,每個活動趨勢線的斜率,使用方法TLCalcNextBarValue。 重新顯示在圖表上的策略圖表標籤的信息,因此用戶可以看到在力的重要的輸入參數,並且還可以決定是否策略仍然有效與否。 用於計算趨勢線值的方法的變化取決於計算是否正在做在酒吧或intrabar的末端。 Intrabar趨勢線的值。 趨勢線在當前條的值被用來生成intrabar訂單。 趨勢線的值被採樣每ReCalcSeconds(缺省值= 2)。 這樣可以確保,如果用戶在策略中移動趨勢線,新的值將被更新的策略產生的任何訂單超過ReCalcSeconds。 結束的酒吧趨勢線的值。 所有活動趨勢線在下一欄中的值是通過將當前的趨勢線值來計算和它的斜率(它與每個桿改變量),並將結果存儲在變量BuyLimitValue,BuyStopValue,SellLimitValue和SellStopvalue。 這是為了確保在下一次滴答滴答吧的結束後,趨勢線為下吧的價值將在新欄的第一跳使用。 在下一欄的趨勢線的值時,而不是在現有的酒吧,因為訂單是當前條在接下來的欄寫的,使用語法: [買/賣]在“價值”[限於/停止]下吧 因此,桿結束後的下一個刻度線將成為下一個吧。 方法ProcessTradeOrders 這種方法生成的所有所有活動趨勢線的用戶已經引起暗示的訂單。 半自動化的趨勢線交易策略 下圖顯示了用戶繪製趨勢線控制半自動化的策略來執行所需的交易:(1)賣出止損訂單輸入(紅色虛線TL),(2)盈利目標(純綠色TL),和(3) 一個停損買單為止損(點綴綠色TL): 點擊圖片放大 定義用戶友好的趨勢線 EasyLanguage易語言電源設計小貼士。 如何使用兩個或更多的時間範圍 各種方法已提出通過使用趨勢線手工畫出的圖上以觸發訂單。 例如,趨勢線的數量或者其色彩可用於識別所需的訂單類型(限價買入,買入止損,賣出限價,賣出止損)。 用來定義趨勢線的任何系統的理想特性是,它是合乎邏輯的,直觀的和用戶友好的: 但是,使用趨勢線號來確定訂單類型所需的是有問題的。 貿易商必須繪製所需趨勢線以特定的順序,因為它們被添加到一個圖表趨勢線號已分配順序。 該交易員必須保證在圖表上不存在其他的趨勢線,如先前繪製的趨勢線可以已經漂移出來視圖圖表上顯示的數據的範圍的。 如果做錯了,並趨勢線被刪除,然後重新繪製,趨勢線的數字可能不再匹配相關聯的訂單類型和策略可能不會像預期的那樣。 使用顏色來標識所需訂單類型有點更加人性化,不容易交易錯誤。 確定具體的顏色是代表特定類型的指令後(限價買入,買入止損,賣出限價,賣出止損。等),功能,如內置Tradestation功能TL_FindColor可用於定位的趨勢線數 第一個趨勢線匹配這兩個顏色之一。 不幸的是,該明亮顯示一個圖上的顏色的數量是有限的,較深的顏色不容易看到。 同時使用趨勢線的顏色和樣式(實線,虛線,點線等)來識別不同的訂單類型似乎有一定的優勢: 看樣訂貨(限價買入,買入止損)可分配相同的顏色,但不同的風格,創造出一個更人性化的分配貸款本身更短的學習曲線和意外事故的風險較低的​​選擇不正確的顏色。 同樣,訂單共享等類似的特性(買入止損,賣出止損)可分配相同的風格(如虛線趨勢線),但不同的顏色。 隨著多種樣式可用,更少的顏色需要使用允許使用最亮,最明顯的顏色趨勢線和顏色和樣式組合的直覺和邏輯分配,很容易記住。 最重要的是交易策略的操作可以減少到四階類型,限價買入,買入止損,賣出限價和賣出止損。 如下: 為了使趨勢線交易更加直觀和人性化,顏色和樣式可用於確定這四種訂單類型相似的特徵,如以下安排: 交易實例 趨勢線打破入口 人們常常認為,突破貿易為水平移動渠道價格及以上的頻道等待在任一方向突破下方水平止損訂單。 然而,更頻繁的使用趨勢線入口是一個顯著趨勢突破。 當然字顯著是相對的,但問題是要找到一種趨勢,已持續了足夠棒該使得一旦趨勢斷回撤將足以產生利潤。 原油(CLK09) 上圖顯示了約2美元的原油期貨(CLK09)有上升的趨勢。 這不是一個很大的舉動為油,但一回撤大到足以產生利潤預計當這種趨勢被打破。 阿紅虛線趨勢線已經繪以下的價格走勢表示希望賣出止損單。 當這條趨勢線被擊中,一個合約將被賣空。



No comments:

Post a Comment