您现在的位置: 比特财富网 >> 财经 >  >> 外匯
怎樣編制外匯EA自動交易系統
外_匯_邦 WaiHuiBang.com

 以下是一些簡單的源碼,供參考學習。www.emoneybtc.com

 

//+------------------------------------------------------------------+ //| Designed by OKwh, China | //| Copyright 2007, OKwh Dxdcn | //| | //+------------------------------------------------------------------+

 

#property copyright “Copyright 2007 , Dxd, China.” #property link ““ #define MAGICMA 200610011231 //+------------------------------------------------------------------+

 

//| 注意沒有指標文件那些property | //+------------------------------------------------------------------+ extern int whichmethod = 1; //1~4 種下單方式 1 僅開倉, 2 有止損無止贏, 3 有止贏無止損, 4 有止贏也有止損 extern double TakeProfit = 100; //止贏點數 extern double StopLoss = 20; //止損點數 extern double MaximumRisk = 0.3; //資金控制,控制下單量 extern double TrailingStop =25;

 

//跟蹤止贏點數設置 extern int maxOpen = 3; //最多開倉次數限制 extern int maxLots = 5; //最多單倉持倉量限制 extern int bb = 0; //非零就允許跟蹤止贏 extern double MATrendPeriod=26;

 

//使用26均線 開倉條件參數 本例子 int i, p2, xxx,p1, res; double Lots; datetime lasttime; //時間控制, 僅當一個時間周期完成才檢查條件 int init() //初始化 { Lots = 1; lasttime = NULL; return(0); } int deinit() { return(0); }

 

//反初始化 //主程序 int start() { CheckForOpen(); //開倉 平倉 條件檢查 和操作 if (bb>0) CTP(); //跟蹤止贏 return(0); }

 

//+------下面是各子程序--------------------------------------------+ double LotsOptimized() //確定下單量,開倉調用 資金控制 { double lot=Lots; int orders=HistoryTotal();

 

// history orders total int losses=0; // number of losses orders without a break //MarketInfo(Symbol(),MODE_MINLOT); 相關信息 //MarketInfo(Symbol(),MODE_MAXLOT);

 

//MarketInfo(Symbol(),MODE_LOTSTEP); lot=NormalizeDouble(MaximumRisk * AccountBalance()/AccountLeverage(),1); //開倉量計算 if(lot<0.1) lot=0.1; if(lot>maxLots) lot=maxLots; return(lot); }

 

//平倉持有的買單 void CloseBuy() { if (OrdersTotal( ) > 0 ) { for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderType()==OP_BUY)

 

{ OrderClose(OrderTicket(),OrderLots(),Bid,3,White); Sleep(5000); } } } } //平倉持有的賣單 void CloseSell() { if (OrdersTotal( ) > 0 ) { for(i=OrdersTotal()-1;i>=0;i--)

 

{ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,White); Sleep(5000); } } } }      

//判斷是否買或賣或平倉 int buyorsell() //在這個函數計算設置你的交易信號 這裡使用MACD 和MA 做例子

 

{ double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

 

MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

 

SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);

 

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1); if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPreviousMaPrevious) return (1);

 

// 買 Ma在上升,Macd在0線上,並且兩線上交叉 if(MacdCurrent>0 && MacdCurrentSignalPrevious && MaCurrent

外_匯_邦 WaiHuiBang.com
  • 上一个财经:
  • 下一个财经:
  •   風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
    比特財富網 版權所有 © www.emoneybtc.com