EA是什么?
"EA"是指智能交易Expert Advisor,也叫智能交易系統(tǒng)、程序交易系統(tǒng)、自動(dòng)化交易程序……EA本質(zhì)上是一個(gè)電腦程序。
是由程序員根據(jù)操盤的交易策略和思路編寫寫成計(jì)算機(jī)程序,只要在交易賬戶運(yùn)行該序,EA就能自動(dòng)分析外匯行情走勢(shì),自動(dòng)買進(jìn)拋出,低買高拋,完全不用盯著電腦,自動(dòng)完成整個(gè)交易過程。
EA自1975年最早起源于美國(guó),隨著電腦技術(shù)和網(wǎng)絡(luò)科技的發(fā)展,華爾街上的許多大公司的外匯交易員并不是把主要精力與時(shí)間放在人工盯盤與手動(dòng)操作上,而是放在不斷編寫與完善自己的交易策略,然后編成EA,讓電腦去自動(dòng)執(zhí)行。
擴(kuò)展資料:
"EA"的類型介紹:
1、趨勢(shì)EA
目前最常見,也是比較成熟的EA策略,根據(jù)各類指標(biāo)策略判斷趨勢(shì),進(jìn)行交易。
2、貨幣對(duì)沖EA
通過不同貨幣價(jià)格波動(dòng)的相關(guān)性進(jìn)行多空對(duì)沖交易,貨幣對(duì)沖EA最大的缺點(diǎn)是無法回測(cè),也就是無法得知過去行情的交易表現(xiàn),只能通過實(shí)盤觀察現(xiàn)有的交易。
3、網(wǎng)格EA
網(wǎng)格EA通過將k線劃分相等或不等點(diǎn)位間距,達(dá)到間距點(diǎn)位觸發(fā)交易。優(yōu)點(diǎn):資金曲線完美,盈利非常穩(wěn)定,倉(cāng)位小資金非常安全,配合定期出金,風(fēng)險(xiǎn)非常小。缺點(diǎn):不適合小資金賬戶或手?jǐn)?shù)過重的交易。
4、 剝頭皮EA
盈利非常高的EA,利用經(jīng)紀(jì)商報(bào)價(jià)延遲的間隙下單,交易時(shí)間非常短毫秒計(jì)算;缺點(diǎn)是對(duì)平臺(tái)的點(diǎn)差和交易環(huán)境要求特別高,目前基本上沒有平臺(tái)適合做長(zhǎng)期穩(wěn)定的剝頭皮交易。
5、綜合類EA
綜合類EA結(jié)合了以上幾種EA的策略,但是有些EA雖然是趨勢(shì)入場(chǎng),卻采用了及其激進(jìn)的資金管理,放大了其爆倉(cāng)風(fēng)險(xiǎn)。有些網(wǎng)格類EA采用了類Martingale的資金管理(馬丁格爾法,類似于逆市加倉(cāng)),放棄了市場(chǎng)中性的入場(chǎng)策略,反而采用一些指標(biāo)來判斷入場(chǎng)。
參考資料來源:百度百科-EA軟件
1。EA公司
美國(guó)藝電(Electronic Arts,NASDAQ: ERTS,以下簡(jiǎn)稱EA),總部設(shè)在美國(guó)加利福尼亞州 紅木城,是全球著名的互動(dòng)娛樂軟件公司。由1982年創(chuàng)立至今,公司在全球?yàn)橐曨l游戲、個(gè)人計(jì)算機(jī)、手機(jī)及互聯(lián)網(wǎng)開發(fā)、發(fā)布、銷售各種互動(dòng)軟件。EA旗下?lián)碛蠩A Sports™、EA™、EA SPORTS Freestyle™及POGO™四大品牌。EA 2008年財(cái)政年度GAPP凈收入為36.7億美元,并且擁有27項(xiàng)產(chǎn)品的全球銷售量分別超過百萬套。請(qǐng)登陸www.ea.com.cn瀏覽EA中國(guó)主頁(yè)。
EA的產(chǎn)品平臺(tái)眾多,包括PC、Play Station 1 2 3 、Xbox、Xbox 360、任天堂Wii、GameCube、Game Boy Advance,PSP等平臺(tái)。
EA是美國(guó)納斯達(dá)克指數(shù)上市公司,業(yè)務(wù)分布26個(gè)國(guó)家,全球員工人數(shù)超過7,100位。
EA風(fēng)靡全球的經(jīng)典游戲包括EA Sports™的《FIFA Soccer》、《NBA Live》,EA™的《模擬人生》、《極品飛車》等。EA綜合運(yùn)用多種媒體技術(shù),并結(jié)合了小說家、電影導(dǎo)演和音樂家的創(chuàng)造,使EA的產(chǎn)品一直能引領(lǐng)互動(dòng)娛樂的時(shí)代潮流。該公司下屬有著名的EA Sports™、POGO™、The Sims™、Maxis™、英國(guó)牛蛙公司、擅長(zhǎng)飛行模擬游戲的Origin、擅長(zhǎng)戰(zhàn)爭(zhēng)模擬游戲的簡(jiǎn)氏公司和開創(chuàng)即時(shí)戰(zhàn)略游戲的Westwood(現(xiàn)已解散重組為EA洛杉磯分部(EALA))。
[編輯本段]2 EA是什么?其工作原理是什么?
EA 即 Expert Advisors 的英文縮寫,中文意思專家顧問,俗稱智能交易系統(tǒng),就是由電腦模擬交易員的下單操作進(jìn)行機(jī)器自動(dòng)交易的過程。
一、人工操盤過程
下面我們就以MT4外匯客戶端為例,首先來分析一個(gè)外匯交易員手工進(jìn)行外匯交易的操作過程:其步驟如下:
1.打開外匯交易客戶端,選定一種貨幣對(duì)圖表;
2。監(jiān)視該貨幣對(duì)的K線趨勢(shì)圖,俗稱盯盤,尋找開倉(cāng)或者是平倉(cāng)的時(shí)機(jī),即開倉(cāng)或者是平倉(cāng)的條件
3。如果條件滿足,進(jìn)行下單開倉(cāng)(做多或者做空)或者平倉(cāng)
4。重復(fù)第二步,繼續(xù)盯盤,假定第二步是開倉(cāng),就是尋找平倉(cāng)的條件。
5。如果平倉(cāng)的條件滿足,進(jìn)行平倉(cāng)操作,計(jì)算盈虧核算。完成一次交易的循環(huán)。
6。若繼續(xù)交易,重復(fù)2->3->4->5步
7。若不進(jìn)行交易,退出外匯客戶端。
二、機(jī)器操盤過程
基于以上的分析,我們已經(jīng)知道一個(gè)完整的智能交易系統(tǒng)(俗稱EA)在運(yùn)行后必須要實(shí)現(xiàn)的基本功能,就是上述的人工操作的1-5步。 這也就是智能交易系統(tǒng)的基本工作過程,所以智能交易系統(tǒng)的工作原理就是由程序員 借助一門計(jì)算機(jī)程序設(shè)計(jì)語言,通過編寫程序交易 指令模擬人類交易員的行為進(jìn)行下單操作,實(shí)現(xiàn)機(jī)器自動(dòng)進(jìn)行交易的過程。主要執(zhí)行過程可分為:盯盤->開倉(cāng)->再盯盤->平倉(cāng),如此循環(huán)執(zhí)行的過程。
關(guān)于支持機(jī)器自動(dòng)交易的平臺(tái),目前外匯市場(chǎng)上流行的就是MetaQuotes公司的MT4平臺(tái),由于這個(gè)平臺(tái)中嵌入了一種MQL4語言,它提供了對(duì)服務(wù)器端的數(shù)據(jù)訪問并可進(jìn)行交易操作的接口,程序交易者可以根據(jù)自己的交易策略來編寫自己的自動(dòng)交易系統(tǒng),從而實(shí)現(xiàn)讓機(jī)器自動(dòng)交易,既可以減輕人類的工作量,又可以克服人類交易中的一此性格弱點(diǎn),但目前的EA開發(fā),尚所早期起步階段,有的還存在缺陷,但相信隨著技術(shù)的發(fā)展,機(jī)器自動(dòng)交易終將會(huì)逐步取代人類的手工操作。屆時(shí)會(huì)給交易者一項(xiàng)新的選擇。
三、 相關(guān)MQL語言知識(shí):
為了實(shí)現(xiàn)機(jī)器操作,再來看看所需的MQL4語言的相關(guān)知識(shí):
1.掌握MQL4語言的基本語法和程序的構(gòu)成,及運(yùn)行流程
有關(guān)語法部分,請(qǐng)讀者參看相關(guān)的資料,這里略去。
關(guān)于程序的構(gòu)成,對(duì)于一個(gè)智能交易系統(tǒng)EA程序來說:主要由三個(gè)函數(shù)構(gòu)成分別是:
init():初始化函數(shù),負(fù)責(zé)程序變量及數(shù)據(jù)初始輸入;只在程序調(diào)入時(shí)執(zhí)行一次,一般不用重寫內(nèi)容。
deinit():反初始化函數(shù),負(fù)責(zé)程序退出時(shí),將數(shù)據(jù)從內(nèi)存中清除;只在程序退出時(shí),執(zhí)行一次,一般不用重寫內(nèi)容。
start():開始函數(shù),也即程序的主函數(shù),負(fù)責(zé)EA程序 的全部交易執(zhí)行過程,實(shí)際上他是一個(gè)EA的交易管理與執(zhí)行函數(shù)。每隔一定時(shí)間,一般幾秒之內(nèi),執(zhí)行一次,就是循環(huán)執(zhí)行,起到程序退出時(shí)終止
運(yùn)行流程:?jiǎn)?dòng)EA后,程序的INTI()開始執(zhí)行一次,-->然后 START()循環(huán)執(zhí)行--->最后退出EA時(shí)deinit()執(zhí)行一次
2。mql4中與交易相關(guān)的交易函數(shù):
開倉(cāng)函數(shù):
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color)
這個(gè)功能主要應(yīng)用于開倉(cāng)位置和掛單交易.
參量:
symbol - 交易貨幣對(duì)。
cmd - 購(gòu)買方式。
volume - 購(gòu)買手?jǐn)?shù)。
price - 收盤價(jià)格。
slippage - 最大允許滑點(diǎn)數(shù)。
stoploss - 止損水平。
takeprofit - 贏利水平。
comment - 注解文本。
magic - 定單指定碼。可以作為用戶指定識(shí)別碼使用。
expiration - 定單有效時(shí)間(只限掛單)。
arrow_color - 圖表上箭頭顏色。如果參量丟失或存在CLR_NONE價(jià)格值不會(huì)在圖表中畫出
平倉(cāng)函數(shù):
bool OrderClose( int ticket, double lots, double price, int slippage, void Color)
對(duì)定單進(jìn)行平倉(cāng)操作。如果函數(shù)成功,返回的值是真實(shí)的。如果函數(shù)失敗,返回的值是假的。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError()函數(shù)。
參量:
ticket - 定單編號(hào)。
lots - 手?jǐn)?shù)。
price - 收盤價(jià)格。
slippage - 最高劃點(diǎn)數(shù)。
Color - 圖表中標(biāo)記顏色。如果參量丟失,CLR_NONE值將不會(huì)在圖表中畫出。
定單修改函數(shù):
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color)
對(duì)于先前的開倉(cāng)或掛單進(jìn)行特性修改。如果函數(shù)成功,返回的值為 TRUE。如果函數(shù)失敗,返回的值為FALSE。 獲得詳細(xì)的錯(cuò)誤信息,查看 GetLastError()函數(shù)。
參量:
ticket - 定單編號(hào)。
price - 收盤價(jià)格
stoploss - 新止損水平。
takeprofit - 新贏利水平。
expiration - 掛單有效時(shí)間。
arrow_color - 在圖表中允許對(duì)止損/贏利顏色進(jìn)行修改。如果參量丟失或存在CLR_NONE 值,在圖表中將不會(huì)顯示。
四、源碼的交易流程分析
下面的源碼是一個(gè)基于移動(dòng)平均線的智能交易系統(tǒng)的代碼 ,整個(gè)程序非常簡(jiǎn)潔但EA的功能又非常齊全,實(shí)現(xiàn)了完全由電腦自動(dòng)下單和平倉(cāng),整個(gè)程序只用了一個(gè)START()
函數(shù)來實(shí)現(xiàn) 。
程序代碼分析
參看代碼中的相關(guān)注釋
//+------------------------------------------------------------------+
//---- input parameters
extern double TakeProfit = 20;
extern double StopLoss = 30;
extern double Lots = 2;
extern double TrailingStop = 50;
extern int ShortEma = 5;
extern int LongEma = 60;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return (0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return (0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total;
double SEma, LEma;
//----
if (Bars < 100)
{
Print("bars less than 100");
return (0);
}
//----
if (TakeProfit < 10)
{
Print("TakeProfit less than 10");
return (0); // check TakeProfit
}
//----
SEma = iMA(NULL, 0, ShortEma, 0, MODE_EMA, PRICE_CLOSE, 0);
LEma = iMA(NULL, 0, LongEma, 0, MODE_EMA, PRICE_CLOSE, 0);
//----
static int isCrossed = 0;
isCrossed = Crossed(LEma, SEma);
//----
total = OrdersTotal();
if (total < 1)
{
if (isCrossed == 1) // 滿足空倉(cāng)條件,開空倉(cāng)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid + StopLoss * Point,
Bid - TakeProfit * Point, "EMA_CROSS", 12345, 0, Green);
if (ticket > 0)
{
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("SELL order opened : ", OrderOpenPrice());
} else
Print("Error opening SELL order : ", GetLastError());
return (0);
}
if (isCrossed == 2) // 滿足多倉(cāng)條件,開多倉(cāng)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point,
Ask + TakeProfit * Point, "EMA_CROSS", 12345, 0, Red);
if (ticket > 0)
{
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("BUY order opened : ", OrderOpenPrice());
} else
Print("Error opening BUY order : ", GetLastError());
return (0);
}
return (0);
}
//---- 訂單修改,實(shí)現(xiàn)動(dòng)態(tài)止盈止損跟蹤
for (cnt = 0; cnt < total; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol())
{
if (OrderType() == OP_SELL) // long position is opened
{
// check for trailing stop
if (TrailingStop > 0)
{
if (Bid - OrderOpenPrice() > Point * TrailingStop)
{
if (OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - Point * TrailingStop,
OrderTakeProfit(), 0, Green);
return (0);
}
}
}
} else // go to short position
{
// check for trailing stop
if (TrailingStop > 0)
{
if ((OrderOpenPrice() - Ask) > (Point * TrailingStop))
{
if ((OrderStopLoss() > (Ask + Point * TrailingStop)))
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + Point * TrailingStop,
OrderTakeProfit(), 0, Red);
return (0);
}
}
}
}
}
}
//----
return (0);
}
//+------------------------------------------------------------------+
// 移動(dòng)平均線多空條件判斷,
int Crossed(double line1, double line2)
{
static int last_direction = 0;
static int current_direction = 0;
//Don't work in the first load, wait for the first cross!
static bool first_time = true;
if (first_time == true)
{
first_time = false;
return (0);
}
//----
if (line1 > line2)
current_direction = 2; //up 多頭市場(chǎng) 上穿做多
if (line1 < line2)
current_direction = 1; //down 空頭市場(chǎng) 下穿做空
//----
if (current_direction != last_direction) //changed 多空改變 {
last_direction = current_direction;
return (last_direction);
else return (0); //not changed
}
五、本文結(jié)論
從以上的分析,可以知道,所謂EA,就是由電腦模擬交易員的下單操作進(jìn)行機(jī)器交易的過程, 具體步驟如下:
1。當(dāng)用戶打開外匯客戶端程序后,由客戶端程序調(diào)入用戶在系統(tǒng)內(nèi)已預(yù)置好的EA交易系統(tǒng)程序。
2。當(dāng)EA程序啟動(dòng)后便開始對(duì)圖表中貨幣對(duì)的K線趨勢(shì)圖,進(jìn)行監(jiān)視,尋找開倉(cāng)的條件;
3。如果條件滿足,進(jìn)行下單開倉(cāng)(做多或者做空);
4。重復(fù)第二步,繼續(xù)盯盤,假定第二步是開倉(cāng),就是尋找平倉(cāng)的條件。
5。如果平倉(cāng)的條件滿足,進(jìn)行平倉(cāng)操作,計(jì)算盈虧核算。完成一次交易的循環(huán)。
6。若繼續(xù)交易,EA重復(fù)2->3->4->5步
7。用戶若不想讓EA進(jìn)行交易,可通過相關(guān)菜單操作設(shè)置禁用EA,或者退出外匯客戶端。
EA旗下4家公司, NBA為EA SPORT產(chǎn)品 全稱為ELECTRONIC ARTS 中文翻譯為“藝電”創(chuàng)立于1982年,總部位于美國(guó)加州舊金山半島上的紅木城,在美國(guó)、加拿大、英國(guó)、澳大利亞、臺(tái)灣、香港等等國(guó)家和地區(qū)均設(shè)有分公司或子公司,世界各地雇員總數(shù)超過4800人。主要進(jìn)行電腦游戲、游戲機(jī)游戲、在線游戲等的研發(fā)、發(fā)行以及銷售業(yè)務(wù)活動(dòng)。
EA是什么?——24小時(shí)ATM機(jī)
對(duì)于初次接觸智能交易的人都會(huì)發(fā)出這樣的疑問:EA,這是個(gè)什么鬼?
1.EA——“24小時(shí)ATM機(jī)”,E即expert,A即advisor,像專家顧問一樣執(zhí)行操作。
2.簡(jiǎn)單來說,EA——一個(gè)電腦程序,是由程序員根據(jù)操盤的交易策略以及思路編寫成計(jì)算機(jī)程序,只要在交易賬戶運(yùn)行該程序,EA就會(huì)依據(jù)編寫時(shí)的思路自動(dòng)分析行情走勢(shì),自動(dòng)實(shí)現(xiàn)買賣的操作,完全不用操盤者盯著電腦,這也是很多交易者稱其為“24小時(shí)ATM機(jī)”的原因所在。
每個(gè)交易者都有自己的交易策略及想法,有一絲絲的出入,編寫成程序就大有不同,因而就會(huì)產(chǎn)生出多個(gè)EA。對(duì)于EA的類型,那也是很多樣。
傳統(tǒng)的交易世界中,交易員通過每天關(guān)注外匯新聞,分析市場(chǎng)的走勢(shì),根據(jù)個(gè)人經(jīng)驗(yàn)和交易系統(tǒng)判斷入場(chǎng)點(diǎn),尋找市場(chǎng)中的獲利機(jī)會(huì),然而在智能化的發(fā)展下,金融市場(chǎng)越來越多的交易員已經(jīng)改主觀交易為程序化交易,交易員大部分工作是在構(gòu)建交易模型核對(duì)模型進(jìn)行反復(fù)檢驗(yàn)和回測(cè),之后就是在實(shí)際使用中進(jìn)行優(yōu)化和調(diào)整,這個(gè)時(shí)候的交易員更像一個(gè)機(jī)械師,調(diào)制自己的機(jī)器以使機(jī)器達(dá)到性能對(duì)優(yōu)化。
在未來,EA——將是交易者的一個(gè)重要工具,將是算法與算法之間的博弈。
EA是把全球頂尖的交易者的策略通過統(tǒng)計(jì)學(xué)、數(shù)學(xué)模型等方式組合起來用以實(shí)現(xiàn)二級(jí)市場(chǎng)標(biāo)的物的買賣,計(jì)算機(jī)自動(dòng)執(zhí)行程序設(shè)置好的策略并在市場(chǎng)中應(yīng)用,利潤(rùn)來源于公平交易環(huán)境下的價(jià)格差價(jià)。例如:美元和人民幣的匯率是:1:6.5, 如果我們判斷未來的一段時(shí)間人民幣會(huì)貶值,則買漲人民幣。當(dāng)美元和人民幣的匯率變?yōu)?:6.8時(shí),我們賣出美元兌換成人民幣就賺到了差價(jià)。
1。EA公司
美國(guó)藝電(Electronic Arts,NASDAQ: ERTS,以下簡(jiǎn)稱EA),總部設(shè)在美國(guó)加利福尼亞州 紅木城,是全球著名的互動(dòng)娛樂軟件公司。由1982年創(chuàng)立至今,公司在全球?yàn)橐曨l游戲、個(gè)人計(jì)算機(jī)、手機(jī)及互聯(lián)網(wǎng)開發(fā)、發(fā)布、銷售各種互動(dòng)軟件。EA旗下?lián)碛蠩A Sports™、EA™、EA SPORTS Freestyle™及POGO™四大品牌。EA 2008年財(cái)政年度GAPP凈收入為36.7億美元,并且擁有27項(xiàng)產(chǎn)品的全球銷售量分別超過百萬套。請(qǐng)登陸www.ea.com.cn瀏覽EA中國(guó)主頁(yè)。
EA的產(chǎn)品平臺(tái)眾多,包括PC、Play Station 1 2 3 、Xbox、Xbox 360、任天堂Wii、GameCube、Game Boy Advance,PSP等平臺(tái)。
EA是美國(guó)納斯達(dá)克指數(shù)上市公司,業(yè)務(wù)分布26個(gè)國(guó)家,全球員工人數(shù)超過7,100位。
EA風(fēng)靡全球的經(jīng)典游戲包括EA Sports™的《FIFA Soccer》、《NBA Live》,EA™的《模擬人生》、《極品飛車》等。EA綜合運(yùn)用多種媒體技術(shù),并結(jié)合了小說家、電影導(dǎo)演和音樂家的創(chuàng)造,使EA的產(chǎn)品一直能引領(lǐng)互動(dòng)娛樂的時(shí)代潮流。該公司下屬有著名的EA Sports™、POGO™、The Sims™、Maxis™、英國(guó)牛蛙公司、擅長(zhǎng)飛行模擬游戲的Origin、擅長(zhǎng)戰(zhàn)爭(zhēng)模擬游戲的簡(jiǎn)氏公司和開創(chuàng)即時(shí)戰(zhàn)略游戲的Westwood(現(xiàn)已解散重組為EA洛杉磯分部(EALA))。
[編輯本段]2 EA是什么?其工作原理是什么?
EA 即 Expert Advisors 的英文縮寫,中文意思專家顧問,俗稱智能交易系統(tǒng),就是由電腦模擬交易員的下單操作進(jìn)行機(jī)器自動(dòng)交易的過程。
一、人工操盤過程
下面我們就以MT4外匯客戶端為例,首先來分析一個(gè)外匯交易員手工進(jìn)行外匯交易的操作過程:其步驟如下:
1.打開外匯交易客戶端,選定一種貨幣對(duì)圖表;
2。監(jiān)視該貨幣對(duì)的K線趨勢(shì)圖,俗稱盯盤,尋找開倉(cāng)或者是平倉(cāng)的時(shí)機(jī),即開倉(cāng)或者是平倉(cāng)的條件
3。如果條件滿足,進(jìn)行下單開倉(cāng)(做多或者做空)或者平倉(cāng)
4。重復(fù)第二步,繼續(xù)盯盤,假定第二步是開倉(cāng),就是尋找平倉(cāng)的條件。
5。如果平倉(cāng)的條件滿足,進(jìn)行平倉(cāng)操作,計(jì)算盈虧核算。完成一次交易的循環(huán)。
6。若繼續(xù)交易,重復(fù)2->3->4->5步
7。若不進(jìn)行交易,退出外匯客戶端。
二、機(jī)器操盤過程
基于以上的分析,我們已經(jīng)知道一個(gè)完整的智能交易系統(tǒng)(俗稱EA)在運(yùn)行后必須要實(shí)現(xiàn)的基本功能,就是上述的人工操作的1-5步。 這也就是智能交易系統(tǒng)的基本工作過程,所以智能交易系統(tǒng)的工作原理就是由程序員 借助一門計(jì)算機(jī)程序設(shè)計(jì)語言,通過編寫程序交易 指令模擬人類交易員的行為進(jìn)行下單操作,實(shí)現(xiàn)機(jī)器自動(dòng)進(jìn)行交易的過程。主要執(zhí)行過程可分為:盯盤->開倉(cāng)->再盯盤->平倉(cāng),如此循環(huán)執(zhí)行的過程。
關(guān)于支持機(jī)器自動(dòng)交易的平臺(tái),目前外匯市場(chǎng)上流行的就是MetaQuotes公司的MT4平臺(tái),由于這個(gè)平臺(tái)中嵌入了一種MQL4語言,它提供了對(duì)服務(wù)器端的數(shù)據(jù)訪問并可進(jìn)行交易操作的接口,程序交易者可以根據(jù)自己的交易策略來編寫自己的自動(dòng)交易系統(tǒng),從而實(shí)現(xiàn)讓機(jī)器自動(dòng)交易,既可以減輕人類的工作量,又可以克服人類交易中的一此性格弱點(diǎn),但目前的EA開發(fā),尚所早期起步階段,有的還存在缺陷,但相信隨著技術(shù)的發(fā)展,機(jī)器自動(dòng)交易終將會(huì)逐步取代人類的手工操作。屆時(shí)會(huì)給交易者一項(xiàng)新的選擇。
三、 相關(guān)MQL語言知識(shí):
為了實(shí)現(xiàn)機(jī)器操作,再來看看所需的MQL4語言的相關(guān)知識(shí):
1.掌握MQL4語言的基本語法和程序的構(gòu)成,及運(yùn)行流程
有關(guān)語法部分,請(qǐng)讀者參看相關(guān)的資料,這里略去。
關(guān)于程序的構(gòu)成,對(duì)于一個(gè)智能交易系統(tǒng)EA程序來說:主要由三個(gè)函數(shù)構(gòu)成分別是:
init():初始化函數(shù),負(fù)責(zé)程序變量及數(shù)據(jù)初始輸入;只在程序調(diào)入時(shí)執(zhí)行一次,一般不用重寫內(nèi)容。
deinit():反初始化函數(shù),負(fù)責(zé)程序退出時(shí),將數(shù)據(jù)從內(nèi)存中清除;只在程序退出時(shí),執(zhí)行一次,一般不用重寫內(nèi)容。
start():開始函數(shù),也即程序的主函數(shù),負(fù)責(zé)EA程序 的全部交易執(zhí)行過程,實(shí)際上他是一個(gè)EA的交易管理與執(zhí)行函數(shù)。每隔一定時(shí)間,一般幾秒之內(nèi),執(zhí)行一次,就是循環(huán)執(zhí)行,起到程序退出時(shí)終止
運(yùn)行流程:?jiǎn)?dòng)EA后,程序的INTI()開始執(zhí)行一次,-->然后 START()循環(huán)執(zhí)行--->最后退出EA時(shí)deinit()執(zhí)行一次
2。mql4中與交易相關(guān)的交易函數(shù):
開倉(cāng)函數(shù):
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color)
這個(gè)功能主要應(yīng)用于開倉(cāng)位置和掛單交易.
參量:
symbol - 交易貨幣對(duì)。
cmd - 購(gòu)買方式。
volume - 購(gòu)買手?jǐn)?shù)。
price - 收盤價(jià)格。
slippage - 最大允許滑點(diǎn)數(shù)。
stoploss - 止損水平。
takeprofit - 贏利水平。
comment - 注解文本。
magic - 定單指定碼。可以作為用戶指定識(shí)別碼使用。
expiration - 定單有效時(shí)間(只限掛單)。
arrow_color - 圖表上箭頭顏色。如果參量丟失或存在CLR_NONE價(jià)格值不會(huì)在圖表中畫出
平倉(cāng)函數(shù):
bool OrderClose( int ticket, double lots, double price, int slippage, void Color)
對(duì)定單進(jìn)行平倉(cāng)操作。如果函數(shù)成功,返回的值是真實(shí)的。如果函數(shù)失敗,返回的值是假的。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError()函數(shù)。
參量:
ticket - 定單編號(hào)。
lots - 手?jǐn)?shù)。
price - 收盤價(jià)格。
slippage - 最高劃點(diǎn)數(shù)。
Color - 圖表中標(biāo)記顏色。如果參量丟失,CLR_NONE值將不會(huì)在圖表中畫出。
定單修改函數(shù):
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color)
對(duì)于先前的開倉(cāng)或掛單進(jìn)行特性修改。如果函數(shù)成功,返回的值為 TRUE。如果函數(shù)失敗,返回的值為FALSE。 獲得詳細(xì)的錯(cuò)誤信息,查看 GetLastError()函數(shù)。
參量:
ticket - 定單編號(hào)。
price - 收盤價(jià)格
stoploss - 新止損水平。
takeprofit - 新贏利水平。
expiration - 掛單有效時(shí)間。
arrow_color - 在圖表中允許對(duì)止損/贏利顏色進(jìn)行修改。如果參量丟失或存在CLR_NONE 值,在圖表中將不會(huì)顯示。
四、源碼的交易流程分析
下面的源碼是一個(gè)基于移動(dòng)平均線的智能交易系統(tǒng)的代碼 ,整個(gè)程序非常簡(jiǎn)潔但EA的功能又非常齊全,實(shí)現(xiàn)了完全由電腦自動(dòng)下單和平倉(cāng),整個(gè)程序只用了一個(gè)START()
函數(shù)來實(shí)現(xiàn) 。
程序代碼分析
參看代碼中的相關(guān)注釋
//+------------------------------------------------------------------+
//---- input parameters
extern double TakeProfit = 20;
extern double StopLoss = 30;
extern double Lots = 2;
extern double TrailingStop = 50;
extern int ShortEma = 5;
extern int LongEma = 60;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return (0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return (0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, total;
double SEma, LEma;
//----
if (Bars < 100)
{
Print("bars less than 100");
return (0);
}
//----
if (TakeProfit < 10)
{
Print("TakeProfit less than 10");
return (0); // check TakeProfit
}
//----
SEma = iMA(NULL, 0, ShortEma, 0, MODE_EMA, PRICE_CLOSE, 0);
LEma = iMA(NULL, 0, LongEma, 0, MODE_EMA, PRICE_CLOSE, 0);
//----
static int isCrossed = 0;
isCrossed = Crossed(LEma, SEma);
//----
total = OrdersTotal();
if (total < 1)
{
if (isCrossed == 1) // 滿足空倉(cāng)條件,開空倉(cāng)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Bid + StopLoss * Point,
Bid - TakeProfit * Point, "EMA_CROSS", 12345, 0, Green);
if (ticket > 0)
{
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("SELL order opened : ", OrderOpenPrice());
} else
Print("Error opening SELL order : ", GetLastError());
return (0);
}
if (isCrossed == 2) // 滿足多倉(cāng)條件,開多倉(cāng)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point,
Ask + TakeProfit * Point, "EMA_CROSS", 12345, 0, Red);
if (ticket > 0)
{
if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("BUY order opened : ", OrderOpenPrice());
} else
Print("Error opening BUY order : ", GetLastError());
return (0);
}
return (0);
}
//---- 訂單修改,實(shí)現(xiàn)動(dòng)態(tài)止盈止損跟蹤
for (cnt = 0; cnt < total; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol())
{
if (OrderType() == OP_SELL) // long position is opened
{
// check for trailing stop
if (TrailingStop > 0)
{
if (Bid - OrderOpenPrice() > Point * TrailingStop)
{
if (OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - Point * TrailingStop,
OrderTakeProfit(), 0, Green);
return (0);
}
}
}
} else // go to short position
{
// check for trailing stop
if (TrailingStop > 0)
{
if ((OrderOpenPrice() - Ask) > (Point * TrailingStop))
{
if ((OrderStopLoss() > (Ask + Point * TrailingStop)))
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + Point * TrailingStop,
OrderTakeProfit(), 0, Red);
return (0);
}
}
}
}
}
}
//----
return (0);
}
//+------------------------------------------------------------------+
// 移動(dòng)平均線多空條件判斷,
int Crossed(double line1, double line2)
{
static int last_direction = 0;
static int current_direction = 0;
//Don't work in the first load, wait for the first cross!
static bool first_time = true;
if (first_time == true)
{
first_time = false;
return (0);
}
//----
if (line1 > line2)
current_direction = 2; //up 多頭市場(chǎng) 上穿做多
if (line1 < line2)
current_direction = 1; //down 空頭市場(chǎng) 下穿做空
//----
if (current_direction != last_direction) //changed 多空改變 {
last_direction = current_direction;
return (last_direction);
else return (0); //not changed
}
五、本文結(jié)論
從以上的分析,可以知道,所謂EA,就是由電腦模擬交易員的下單操作進(jìn)行機(jī)器交易的過程, 具體步驟如下:
1。當(dāng)用戶打開外匯客戶端程序后,由客戶端程序調(diào)入用戶在系統(tǒng)內(nèi)已預(yù)置好的EA交易系統(tǒng)程序。
2。當(dāng)EA程序啟動(dòng)后便開始對(duì)圖表中貨幣對(duì)的K線趨勢(shì)圖,進(jìn)行監(jiān)視,尋找開倉(cāng)的條件;
3。如果條件滿足,進(jìn)行下單開倉(cāng)(做多或者做空);
4。重復(fù)第二步,繼續(xù)盯盤,假定第二步是開倉(cāng),就是尋找平倉(cāng)的條件。
5。如果平倉(cāng)的條件滿足,進(jìn)行平倉(cāng)操作,計(jì)算盈虧核算。完成一次交易的循環(huán)。
6。若繼續(xù)交易,EA重復(fù)2->3->4->5步
7。用戶若不想讓EA進(jìn)行交易,可通過相關(guān)菜單操作設(shè)置禁用EA,或者退出外匯客戶端。
EA旗下4家公司, NBA為EA SPORT產(chǎn)品 全稱為ELECTRONIC ARTS 中文翻譯為“藝電”創(chuàng)立于1982年,總部位于美國(guó)加州舊金山半島上的紅木城,在美國(guó)、加拿大、英國(guó)、澳大利亞、臺(tái)灣、香港等等國(guó)家和地區(qū)均設(shè)有分公司或子公司,世界各地雇員總數(shù)超過4800人。主要進(jìn)行電腦游戲、游戲機(jī)游戲、在線游戲等的研發(fā)、發(fā)行以及銷售業(yè)務(wù)活動(dòng)。
EA是什么?——24小時(shí)ATM機(jī)
對(duì)于初次接觸智能交易的人都會(huì)發(fā)出這樣的疑問:EA,這是個(gè)什么鬼?
1.EA——“24小時(shí)ATM機(jī)”,E即expert,A即advisor,像專家顧問一樣執(zhí)行操作。
2.簡(jiǎn)單來說,EA——一個(gè)電腦程序,是由程序員根據(jù)操盤的交易策略以及思路編寫成計(jì)算機(jī)程序,只要在交易賬戶運(yùn)行該程序,EA就會(huì)依據(jù)編寫時(shí)的思路自動(dòng)分析行情走勢(shì),自動(dòng)實(shí)現(xiàn)買賣的操作,完全不用操盤者盯著電腦,這也是很多交易者稱其為“24小時(shí)ATM機(jī)”的原因所在。
每個(gè)交易者都有自己的交易策略及想法,有一絲絲的出入,編寫成程序就大有不同,因而就會(huì)產(chǎn)生出多個(gè)EA。對(duì)于EA的類型,那也是很多樣。
傳統(tǒng)的交易世界中,交易員通過每天關(guān)注外匯新聞,分析市場(chǎng)的走勢(shì),根據(jù)個(gè)人經(jīng)驗(yàn)和交易系統(tǒng)判斷入場(chǎng)點(diǎn),尋找市場(chǎng)中的獲利機(jī)會(huì),然而在智能化的發(fā)展下,金融市場(chǎng)越來越多的交易員已經(jīng)改主觀交易為程序化交易,交易員大部分工作是在構(gòu)建交易模型核對(duì)模型進(jìn)行反復(fù)檢驗(yàn)和回測(cè),之后就是在實(shí)際使用中進(jìn)行優(yōu)化和調(diào)整,這個(gè)時(shí)候的交易員更像一個(gè)機(jī)械師,調(diào)制自己的機(jī)器以使機(jī)器達(dá)到性能對(duì)優(yōu)化。
在未來,EA——將是交易者的一個(gè)重要工具,將是算法與算法之間的博弈。
EA是把全球頂尖的交易者的策略通過統(tǒng)計(jì)學(xué)、數(shù)學(xué)模型等方式組合起來用以實(shí)現(xiàn)二級(jí)市場(chǎng)標(biāo)的物的買賣,計(jì)算機(jī)自動(dòng)執(zhí)行程序設(shè)置好的策略并在市場(chǎng)中應(yīng)用,利潤(rùn)來源于公平交易環(huán)境下的價(jià)格差價(jià)。例如:美元和人民幣的匯率是:1:6.5, 如果我們判斷未來的一段時(shí)間人民幣會(huì)貶值,則買漲人民幣。當(dāng)美元和人民幣的匯率變?yōu)?:6.8時(shí),我們賣出美元兌換成人民幣就賺到了差價(jià)。
"A"是什么意思?
1. "A" 是一個(gè)英文字母,它是最前面的一個(gè)大寫字母。2. 在撲克牌中,"A" 代表的是1點(diǎn),也可以是ace,表示最小的牌。3. "A" 也可以是一個(gè)人字梯的圖示,或者用來形容某個(gè)物體的形狀。4. 在代號(hào)或者編號(hào)中,"A" 常常用來代表某個(gè)人或者某件物品,比如某人A和某人B,某房屋A和房屋B。5....
a 是什么
答案:a是一個(gè)字母或符號(hào)。它通常用作代表變量或某種特定信息。在不同上下文中,a可能有不同的含義。解釋:1. 字母或符號(hào): 在基礎(chǔ)的語境中,a是一個(gè)拉丁字母,用于書寫和表達(dá)語言。它與其他字母和符號(hào)一起組成單詞和句子,表達(dá)特定的意思。2. 變量代表: 在數(shù)學(xué)、編程或其他科學(xué)領(lǐng)域,a往往被用作...
a是什么?
a是漢語拼音的一個(gè)元音音素,又稱韻母,同時(shí)可以自成一個(gè)音節(jié)。根據(jù)韻母命名原則,a的專業(yè)名稱是“舌面央低不圓唇元音”,名稱代表著發(fā)音時(shí)的標(biāo)準(zhǔn)舌位和唇形。單韻母是由一個(gè)元音構(gòu)成的韻母,又叫單元音韻母。漢語字音中聲母、字調(diào)以外的部分,稱為韻母,韻母按結(jié)構(gòu)可分為單韻母、復(fù)韻母、鼻韻母。普...
英語中,“a.”是什么意思?
a,是一個(gè)獨(dú)立的英文單詞,本身就包括了量詞,通常后面加名詞。“a”意為“一”,如:一只老虎“a tiger”;一輛公共汽車“a bus”。字母a的產(chǎn)生有可能是由于一個(gè)牛頭符號(hào),像在古埃及文字里并很早出現(xiàn)在閃族的書面當(dāng)中,大約在公元前1500年的西奈半島。應(yīng)用 1、一輛車:a car 2、一只貓:a cat ...
想問一下a是什么?
1、a是26個(gè)英文字母中首發(fā)的第一個(gè),我們的許多簡(jiǎn)單的單詞都會(huì)用到a,如actor(演員),apple(蘋果),admire(贊美)。2、a是一個(gè)獨(dú)立的英文單詞,本身就包括了量詞,通常后面加名詞。“a”意為“一個(gè)(可代替任意單數(shù)量詞,一般與one替換)”,如:一只老虎“a tiger”;一輛公共汽車“a bus”...
數(shù)學(xué)中a是什么意思?
a是什么意思數(shù)學(xué):a在數(shù)學(xué)中有多重含義,以下是關(guān)于a的不同意義和用法的詳細(xì)解答:1.a作為變量或未知數(shù) 在代數(shù)中,a常常被用作變量或未知數(shù),表示一個(gè)待求解或需要推導(dǎo)的數(shù)值或量。例如,在方程中,a可以表示一個(gè)未知數(shù),通過求解方程可以確定a的具體值。數(shù)學(xué)中a表示a的絕對(duì)值。數(shù)學(xué)中a表示一個(gè)...
a是什么意思網(wǎng)絡(luò)用語
a是帥到爆的意思。一般多用于飯圈,很多粉絲夸愛豆的時(shí)候就會(huì)說太a了。形容詞。形容一個(gè)人很a時(shí),表示這個(gè)人很man,攻氣爆棚。a來自同人圈的abo設(shè)定。“很a”這個(gè)詞一般都是形容男生的,在明星的飯圈內(nèi)用途比較廣泛,意思是很帥、很man,帥到爆的意思,可以用來形容男女偶像,說他們利落帥氣。其實(shí)最...
a 是什么意思
答案:a通常表示字母或變量的起始。解釋:1. 字母表示:在很多情境中,特別是在數(shù)學(xué)、物理、計(jì)算機(jī)等領(lǐng)域,字母a常常用作變量的起始標(biāo)記。例如,在數(shù)學(xué)方程中,a可以被用來代表一個(gè)未知數(shù)值。這種字母表示法是為了方便進(jìn)行符號(hào)化表達(dá)和計(jì)算。2. 變量指代:在計(jì)算機(jī)編程中,變量是用來存儲(chǔ)和操作數(shù)據(jù)的。
a在數(shù)學(xué)是什么意思?
a還有另一種表示形式,即a表示等比數(shù)列中的首項(xiàng)。等比數(shù)列是一種常見的數(shù)學(xué)模型,在其中,每一項(xiàng)除以前一項(xiàng)的結(jié)果都相等,這個(gè)相等的比值稱為公比。首項(xiàng)就是等比數(shù)列中的第一項(xiàng),通常用a表示。通過第一項(xiàng)a和公比r,我們可以求得等比數(shù)列中的任何一項(xiàng),例如第n項(xiàng)為an=a*(r^(n-1))。除了以上兩種...
a是什么意思?
“a”是字母名稱之一,其大寫是“A”,是拉丁字母(以英語字母為代表)表與西里爾字母(以俄語字母為代表)表中的第一個(gè)字母。這個(gè)字母在很多領(lǐng)域均有應(yīng)用,代表的含義各不相同,比如在物理中表示電流單位安培,遺傳學(xué)中示腺嘌呤,對(duì)學(xué)生學(xué)業(yè)的評(píng)價(jià)優(yōu)秀等等。在排列的時(shí)候,也習(xí)慣上排在最前,表示第一...
相關(guān)評(píng)說:
龍州縣公稱: ______ 交易員通過將交易思路進(jìn)行編程,從而使電腦按照交易員的交易思路進(jìn) 行無心態(tài)干擾的交易過程.EA最大的優(yōu)勢(shì)就是它的執(zhí)行力,EA是機(jī)器,所以不會(huì)有情緒,不會(huì)因?yàn)樘潛p了懊惱或則盈利了驕傲而失去控制,不少都有這樣的經(jīng)歷吧:一次沖...
龍州縣公稱: ______ ea=each,即每個(gè),各個(gè)的意思
龍州縣公稱: ______ 美國(guó)EA公司(Electronic Arts)成立于1982年,現(xiàn)今全球最大的互動(dòng)娛樂軟件獨(dú)立開發(fā)商和發(fā)行公司.EA公司擁有EA Sports、EA Games和EA Com三個(gè)世界性品牌,旗...
龍州縣公稱: ______ EA 即 Expert Advisors 的英文縮寫,中文意思專家顧問,俗稱智能交易系統(tǒng),就是由電腦模擬交易員的下單操作進(jìn)行機(jī)器自動(dòng)交易的過程
龍州縣公稱: ______ EA是電子競(jìng)技俱樂部俱樂部由行業(yè)資深級(jí)人士運(yùn)營(yíng),主攻一些世界主流游戲項(xiàng)目,具體的可以進(jìn)入天一國(guó)際這網(wǎng)站,里面有EA平臺(tái)你可以來看看
龍州縣公稱: ______ EA是一家游戲公司,主要是做游戲的.
龍州縣公稱: ______ EA是美國(guó)藝電公司,Electronic Arts,成立于1982年,現(xiàn)今全球最大的互動(dòng)娛樂軟件獨(dú)立開發(fā)商和發(fā)行公司.EA公司擁有EA Sports、EA Games和EA.Com三個(gè)世界性品牌,旗下EA Sport是知名專業(yè)游戲公司,運(yùn)動(dòng)系列電腦和電視游戲以及娛樂軟件開發(fā)商、發(fā)行商.EA總部設(shè)在加州雷德伍德市.美國(guó)藝電公司(Electronic Arts Inc.,EA)全球最大的互動(dòng)娛樂軟件開發(fā)商和發(fā)行商 .
龍州縣公稱: ______ 是有效地址(Effective Address,EA )
龍州縣公稱: ______ 你好 朋友,德語里面沒有這個(gè)單詞.有可能是縮寫:1. 比如 Ehrenamtliche,這個(gè)單詞就會(huì)縮寫成EA, 意思是“名譽(yù)的,義務(wù)的”2. Extended Address/Attribute也可以縮寫成EA. “擴(kuò)展地址/屬性” 也有可能有別的意思,具體要看語境.