您现在的位置:主页 > 基础 >

外汇交易辅助EA(编写)

更新时间:2022-09-05 20:59:12

  //=============== VARS external
extern int 第一目标点数 = 20;
extern int 第二目标与第一目标距离 = 20;
extern double 分批平仓手数 = 0.2;
//=======================================
extern bool 使用移动止损功能 = true;
extern int 第一次盈利点数 = 10;
extern int 第一次移止损距离开仓价点数 = 0;
extern int 第二次盈利点数 = 30;
extern int 第二次移止损距离开仓价点数 = 10;
//======================================
extern bool 使用最大允许亏损功能 = true;
extern int 最大亏损点数 = 20;
extern int Magic_Number=0;

  //=============== VARS internal
int nextTP;
bool sl;
int range = 5;
int multiplier;
// OrderType == 1 is OP_SELL

  
//=============== FUNCTION init
int init
{
sl=0;
nextTP = 第一目标点数;
getMaxLoss;
}
//== end function

  
//=============== FUNCTION deinit
int deinit
{
//----
sl=0;
nextTP = 第一目标点数;
//----
return;
}
//== end function

  //========== FUNCTION Start
int start
{
//----
getOpenOrders;
getSpread;
//Comment;
//----
return;
}
//== end function

  //========== FUNCTION getPipValue
double type_order_profit
{
double val;
RefreshRates;
if val= - NormalizeDouble);
else val= - NormalizeDouble);
val = val/Point;
return;
}
//== end function

  int getSpread
{
int spread=MarketInfo,MODE_SPREAD);
return;
}

  
int getMaxLoss
{
int calcMaxLoss;
calcMaxLoss = 最大亏损点数;
return;
}
//========== FUNCTION getOpenOrders
void getOpenOrders
{
int nsl, nsd;
string mngMagic;
int totalorders = OrdersTotal;
for
{
OrderSelect;
if == OP_BUY OrderType == OP_SELL) && OrderSymbol == Symbol&&))
{

  double order_profit=type_order_profit,OrderType);
//int val = OrderProfit/*10);
if killTrade);
if checkStops);
Close_at_Profit);

}

if
mngMagic = "All "+Symbol+" trades.";
else
mngMagic = "Trades with magic number = "+Magic_Number;


if
{
nsl = 第一次盈利点数;
nsd = 第一次移止损距离开仓价点数;
}
else
{
nsl = 第二次盈利点数;
nsd = 第二次移止损距离开仓价点数;
}
//RefreshRates;
Comment,
"/nPip Count: ", order_profit,
"/nNext Stop Target: ",nsl,
"/nNext Stop Differential: ", nsd,
"/nNext TP: ", nextTP,
"/nSL: ",sl,
"/nMax Loss: ", getMaxLoss,
"/nManaging: ",mngMagic);
 

  }
}

  //========== FUNCTION takeProfit
void Close_at_Profit
{
if==true)
{

  if)
{
if==1)
{
if)
nextTP+=第二目标与第一目标距离;
else
Print);
}
else
{
if)
nextTP+=第二目标与第一目标距离;
else
Print);
}

}

  }
}

  //== end function

  //========== FUNCTION moveStops
void checkStops
{
if
{
if)
{
moveStops;
}
}
else if
{
if
{
moveStops;
}
}

  
}

  //== end function

  //========== FUNCTION moveStops
void moveStops
{
if==true)
{
Print;
if==1)
{
OrderModify,OrderOpenPrice-TrainingStop*Point, OrderTakeProfit,0,Plum);
sl=1;
}
else
{
OrderModify,OrderOpenPrice+TrainingStop*Point, OrderTakeProfit,0,Plum);
sl=1;
}
}
 

  
}

  //== end function

  //========== FUNCTION killTrades
void killTrade
{
if==true)
{
if)
{
if==1) OrderClose,Ask,3,Red);
else OrderClose,Bid,3,Red);
}
}
}