在講程式碼前,我們先來討論一下關於EA的基本知識,不然到時候語言學會了但程式架構要怎麼寫都不知道就開天窗了。
通常順序是:評估完風險的情況決定部位與價位,然後下單為一次交易。在有多個交易進行時會自動計算虧損或盈利。而在程式碼中也可使用指令修改部位使其在安全的情況下交易。
「部位」是指在金融市場上持有的特定金融資產的數量。當一個投資者或交易者購買或持有一定數量的某種金融資產時,他們被認為擁有一個部位。部位可以是長倉(多頭部位,預期價格上漲)或短倉(空頭部位,預期價格下跌)。
指投資者或交易者在特定金融資產中持有的頭寸數量。倉位的大小可以根據投資者的策略和風險偏好而有所不同。以下為倉位的種類與名詞解釋:
多頭倉位(Long Position):當一個投資者買入一個金融資產,預期該資產價格將上漲時,他們被稱為持有多頭倉位。這表示他們相信該資產的價值將升值,以便在未來出售以獲利。
空頭倉位(Short Position):當一個投資者賣出一個金融資產,預期該資產價格將下跌時,他們被稱為持有空頭倉位。這表示他們相信該資產的價值將貶值,以便在未來購回以獲利。
淨倉位(Net Position):淨倉位是投資者在一個特定金融資產上的多頭和空頭倉位之差。如果多頭倉位多於空頭倉位,則淨倉位為正數,表示投資者在該資產上持有多頭立場。如果空頭倉位多於多頭倉位,則淨倉位為負數,表示投資者在該資產上持有空頭立場。
倉位大小:倉位大小通常根據投資者的風險承受能力、資本水平和交易策略而有所不同。一些投資者可能會使用固定比例的倉位,而其他人可能會根據市場波動調整倉位大小。
倉位管理:有效的倉位管理對於成功的交易和投資至關重要。投資者通常會設置止損(限制潛在虧損)和止盈(確保獲利)水平,以確保他們能夠控制風險並保護資本。
例1:
我們預期歐元對美元的匯率將升值,因此想要建立一個多頭部位(長倉)。
我們決定買入1手(通常等於100,000單位)的EUR/USD。這意味著現在持有1手EUR/USD的部位。
如果EUR/USD的匯率在我們建立部位後上漲,將有可能獲得盈利。例如,如果匯率由1.1000上升到1.1100,你的部位價值也會上升,從而實現了盈利。
然而,如果匯率下跌,我們的部位價值將下降,可能會虧損。這就是為什麼風險管理在貨幣交易中非常重要,就需要設置止損指令,以限制潛在虧損。
如果最後決定平倉部位,你將出售你持有的1手EUR/USD,並根據當時的匯率價格實現盈利或虧損。
例2:
以1.1000的匯率買入100,000歐元(EUR)。
之後,再次以1.1050的匯率買入50,000歐元(EUR)。
最後,以1.1100的匯率再次買入75,000歐元(EUR)。
要計算整個EUR/USD部位的平均價格,可以按以下方式計算:
((100,000 EUR * 1.1000) + (50,000 EUR * 1.1050) + (75,000 EUR * 1.1100)) / (100,000 EUR + 50,000 EUR + 75,000 EUR) = (110,000 USD + 55,250 USD + 83,250 USD) / (100,000 EUR + 50,000 EUR + 75,000 EUR) = 248,500 USD / 225,000 EUR = 1.1062 USD/EUR
所以,整個EUR/USD部位的平均價格是1.1062美元/歐元。這表示,如果EUR/USD匯率高於1.1062,整個部位將處於盈利狀態,低於該價格則處於虧損狀態。
市價單是一種金融交易指令,它要求在當前市場價格下立即執行交易,無論當時的買入或賣出價格是多少。市價單是最簡單和最直接的交易方式,因為它確保您的訂單將立即成交,而不管市場的波動或變化如何。
即時執行:市價訂單確保交易立即執行,無需等待或擔心錯過市場機會。
確保交易:市價訂單通常確保訂單執行,無論市場多快速變動,都可以在當前市場價格下進行買入或賣出。
快速進入市場:這種訂單允許投資者快速進入市場,參與資產的買賣,對於需要快速調整交易策略的交易者或日內交易者特別有用。
適用於高度流動市場:即時執行訂單在高度流動的市場中表現出色,因為市場變動迅速,而市價訂單能夠快速應對這些變動。
價格不確定性:市價訂單無法保證特定價格執行,因此可能以不利於我們的價格執行交易,導致潛在虧損。
風險高:由於價格不確定性,即時執行訂單伴隨著較高的風險,特別是在快速變動的市場中。投資者應謹慎使用市價訂單,並在需要時使用止損訂單來限制風險。
不適用於不流動市場:在低流動性的市場中,市價訂單可能會導致較大的價格滑點,因為市場上的買賣價格差異較大。
市場執行(Market Execution)是一種交易執行方式,通常用於外匯交易和部分其他金融市場中。市場執行是一種立即以當前市場價格執行交易的方法,無論當時的買入或賣出價格是多少。它是即時執行的一種形式,並確保您的訂單立即在市場上成交。
以下是市場執行的一些優缺點和用途:
即時執行:市場執行確保訂單將立即按當前市場價格執行,無需等待或擔心價格變動。
確保交易:這種執行方式通常確保交易的執行,因為它們不要求特定價格。可以以市場上最好的價格進行買入或賣出。
快速進入市場:市場執行能夠快速進入市場,參與資產的買賣,這對需要快速參與市場的交易者非常有用。
無價格保證:市場執行不保證特定價格執行。因此,在下市場執行賣單時,可能會以較低的價格出售您的資產,而在下市場執行買單時,可能會以較高的價格購入資產。
日內交易(Day Trading):市場執行對於日內交易者來說非常有用,因為他們需要快速進出市場,參與短期價格波動。
快速調整策略:當您需要根據市場動態快速調整交易策略時,市場執行非常適用。
利用高流動性市場:在高度流動的市場中,市場執行效果較佳,因為市場價格變動較小,交易執行速度快。
價格滑點(Price Slippage):市場執行的主要缺點之一是價格滑點。由於市場的變動性和流動性,訂單可能以不同於預期的價格執行。這可能導致在交易中實現較差的價格,特別是在高度變動的市場情況下。
不適用於低流動性市場:在低流動性市場中,市場執行可能會變得困難,因為市場上的買賣價格差異較大,可能會導致更大的價格滑點。
無法控制價格:市場執行不允許控制執行價格,因此當市場變得極端不穩定時,可能會經歷不利的價格執行。
不適用於特定策略:某些交易策略可能需要更精確的價格控制,例如定價策略(例如限價單)。對於這些策略,市場執行可能不太合適。
交換執行(Exchange Execution)是一種金融交易的執行方式,它涉及到投資者在交易所或交易平台上提交訂單,然後等待該訂單在市場上被其他交易者接受或匹配。這種方式通常適用於股票、期貨、選擇權等金融工具的交易。
以下是交換執行的一些優缺點
集中市場:交換執行通常在集中的金融市場(例如股票交易所)上進行,這些市場提供了交易參與者之間的集中交易平台。
公平競爭:所有參與者在同一市場上提交訂單,並有機會參與競爭,確保了公平性。
價格透明度:市場上的價格和成交量信息通常是公開可見的,投資者可以查看即時市場資訊。
市場深度:交換執行通常提供市場深度(order book)信息,顯示了即將執行的訂單以及等待執行的訂單。
執行時間不確定性:在交換執行中,訂單的執行時間是不確定的。訂單可能需要等待匹配,特別是當市場流動性較低時,這可能導致交易者等待時間過長。
價格滑點:當訂單最終執行時,執行價格可能與投資者最初期望的價格有所不同,這種現象被稱為價格滑點。價格滑點可能會使交易者以不太理想的價格進行買賣。
市場波動性風險:在市場波動性較高的情況下,交換執行可能導致更大的價格波動,因為市場參與者努力匹配訂單,這可能對交易結果產生影響。
不適用於高頻交易:交換執行可能不適用於高頻交易策略,因為高頻交易需要極低的執行時間,而交換執行可能無法提供足夠的速度。
訂單拒絕風險:在某些情況下,交易所可能會拒絕執行某些訂單,例如在市場暫停交易時。這可能會導致交易無法執行,特別是在市場不穩定或出現技術故障時。
Fill or Kill是一種金融交易指令,通常用於證券交易和外匯交易等市場中。FOK訂單要求在下單後立即將整個訂單的數量以指定的價格執行,如果無法在指定價格上完全執行整個訂單,則訂單將被取消或拒絕。FOK訂單要求立即「填滿」(Fill)或立即「取消」(Kill)。
FOK訂單有以下特點:
立即執行:FOK訂單要求立即以指定價格執行,無需等待市場價格變動。
全部或取消:如果無法以指定價格執行整個訂單,則訂單將被取消或拒絕,不會部分執行。
風險控制:FOK訂單通常用於投資者希望確保在特定價格上以特定數量進行交易的情況。這可用於風險控制,以確保不會在不利價格上執行。
限制市場影響:FOK訂單可以減少市場影響,因為它們要求立即執行,而不會在市場上留下未完成的訂單。
FOK訂單通常在需要確保特定價格和數量的情況下使用,例如在某些高度流動的市場中或需要避免市場波動性影響的情況下。
"Immediate-or-Cancel"是一種金融交易指令,通常用於證券交易和外匯交易等市場中。委託單送出後,允許部份單子成交,其他沒有滿足的單子則取消。當投資人掛出市價單時,系統會自動設定為「IOC」。
IOC大致與FOK相同,唯一差別在IOC訂單允許部分執行。如果無法在指定價格上完全執行整個訂單,則將執行可行的部分,而未執行的部分將被取消。