//+------------------------------------------------------------------+
//|
DoubleMA_Crossover_EA.mq4
|
//|
Copyright ?2005
|
//|
Written by MrPip from idea of Jason Robinson for
Eric |
|
//+------------------------------------------------------------------+
#property copyright "Copyright ?2005, MrPip"
#include <stdlib.mqh>
//----
extern bool AccountIsMini=false;
// Change to true if trading
mini account //是否迷你账户设置
extern bool MoneyManagement=false;
// Change to false to shutdown money management
controls.//是否资金管理
//----
// Lots = 1 will be in effect
and only 1 lot will be open regardless of equity.
extern double TradeSizePercent=5;
// Change to whatever percent
of equity you wish to risk.
//设置交易金额所占比率
extern double Lots=1;
// standard lot
size.//下单理控制,单位标准手
extern double MaxLots=3;
//+---------------------------------------------------+
//|Indicator Variables
|
//| Change these to try your own system
|
//| or add more if you like
|
//+---------------------------------------------------+
extern int FastMA_Mode=0;
// 0=sma, 1=ema, 2=smma,
3=lwma, 4=LSMA 快平均线的类型
extern int FastMA_Period= 2;
//5分钟
extern int FastMA_Shift=0;
extern int FastMA_AppliedPrice=0;
// 0=close, 1=open, 2=high, 3=low,
4=median((h+l/2)), 5=typical((h+l+c)/3), 6=weighted((h+l+c+c)/4)
//平均线的应用价格
extern int SlowMA_Mode=0;
// 0=sma, 1=ema, 2=smma,
3=lwma, 4=LSMA //慢线设置
extern int SlowMA_Period= 5;
//小时
extern int SlowMA_Shift=0;
extern int SlowMA_AppliedPrice=0;
// 0=close, 1=open, 2=high, 3=low,
4=median((h+l/2)), 5=typical((h+l+c)/3),
6=weighted((h+l+c+c)/4)
extern double BreakOutLevel=45;
// Start trade after breakout
is reached
extern int SignalCandle=1;
//+---------------------------------------------------+
//|Money Management
|
//+---------------------------------------------------+
extern double StopLoss=250;
// Maximum pips willing to lose per position.
止损点数
extern bool UseTrailingStop=false;
//是否使用追踪止损
extern int TrailingStopType=3;
// Type 1
moves stop immediately, Type 2 waits til value of TS is reached
追踪止损 1 立即止损 2 移动止损
extern double TrailingStop=40;
// Change
to whatever number of pips you wish to trail your position with.
追踪止损 点数
extern double TRStopLevel_1=20;
// Type 3
first level pip gain
extern double TrailingStop1=20;
// Move Stop to
Breakeven
extern double TRStopLevel_2=30;
// Type 3 second level pip
gain
extern double TrailingStop2=20;
// Move stop to lock is
profit
extern double TRStopLevel_3=50;
// type 3 third level pip
gain
extern double TrailingStop3=20;
// Move stop and trail from
there
extern int TakeProfit=0;
// Maximum profit level
achieved. 止羸点数
extern double Margincutoff=800;
// Expert will stop trading
if equity level decreases to that level.
extern int Slippage=10;
// Possible fix for not
getting closed
//----
bool UseTimeLimit=true;
//使用时间限定不?
int StartHour =11;
// Start trades after
time
int StopHour=16;
// Stop
trading after time
bool UseFridayCloseAll=true;
//周五平掉所有的单
string FridayCloseTime="21:30";
//周五平单时间
bool UseFridayStopTrading=false;
//周五是否停止交易
string FridayStopTradingTime="19:00";
//周五停止交易时间
//+---------------------------------------------------+
//|General controls
|
//+---------------------------------------------------+
int MagicNumber;
string setup;
bool YesStop;
double lotMM;
int TradesInThisSymbol;
//+------------------------------------------------------------------+
//| expert initialization function
|
//+------------------------------------------------------------------+
int init()
//----
//+------------------------------------------------------------------+
//| expert deinitialization function
|
//+------------------------------------------------------------------+
int deinit()
//+------------------------------------------------------------------------+
//| LSMA - Least Squares Moving Average function calculation
|
//| LSMA_In_Color Indicator plots the end of the linear
regression line |
//| Modified to use any timeframe
|
//+------------------------------------------------------------------------+
double LSMA(int Rperiod,int prMode, int TimeFrame, int mshift)
//最小平方移动平均线计算
{
}
//+------------------------------------------------------------------+
//| CheckExitCondition
|
//| Check if any exit condition is met
|
//+------------------------------------------------------------------+
bool CheckExitCondition(string TradeType)
//检测关闭条件
{
}
//+------------------------------------------------------------------+
//| CheckEntryCondition
|
//| Check if entry condition is met
|
//+------------------------------------------------------------------+
bool CheckEntryCondition(string TradeType)
//检测交易条件
{
}
//+------------------------------------------------------------------+
//| expert start function
|
//+------------------------------------------------------------------+
int start()
//----
//+------------------------------------------------------------------+
//| Functions beyond this point should not need to be modified
|
//| Eventually will be placed in include file
|
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Open BuyStop
|
//| Open a new trade using Buy Stop
|
//| If Stop Loss or TakeProfit are used the values are
calculated |
//| for each trade
|
//+------------------------------------------------------------------+
void OpenBuyStopOrder() //下买单
{
}
//+------------------------------------------------------------------+
//| Open SellStop
|
//| Open a new trade using Sell Stop
|
//| If Stop Loss or TakeProfit are used the values are
calculated |
//| for each trade
|
//+------------------------------------------------------------------+
void OpenSellStopOrder()//下卖单
{
}
//+------------------------------------------------------------------------+
//| counts the number of open positions
|
//+------------------------------------------------------------------------+
int openPositions( )
//统计现在的交易单
{
int op =0;
for(int i=OrdersTotal()-1;i>=0;i--)
// scan all orders and positions...
return(op);
}
//+------------------------------------------------------------------------+
//| counts the number of STOP positions
|
//+------------------------------------------------------------------------+
int openStops()
{ int op =0;
for(int i=OrdersTotal()-1;i>=0;i--)
// scan all orders and positions...
return(op);
}
//+------------------------------------------------------------------+
//| Handle Open Positions
|
//| Check if any open positions need to be closed or modified
|
//+------------------------------------------------------------------+
int
HandleOpenPositions()//检测是否有交易单需要关闭或修改止损的止羸
{
int cnt;
bool YesClose;
double pt;
for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
}
//+------------------------------------------------------------------+
//| Delete Open Position Controls
|
//| Try to close position 3 times
|
//+------------------------------------------------------------------+
void DeleteOrder(int ticket)
{
int CloseCnt, err;
// try to close 3 Times
CloseCnt=0;
while(CloseCnt < 3)//关闭三次数
}
//+------------------------------------------------------------------+
//| Close Open Position Controls
|
//| Try to close position 3 times
|
//+------------------------------------------------------------------+
void CloseOrder(int ticket,double numLots,double
close_price)//关闭订单
{
int CloseCnt, err;
// try to close 3 Times
CloseCnt=0;
while(CloseCnt < 3)
}
//+------------------------------------------------------------------+
//| Modify Open Position Controls
|
//| Try to modify position 3 times
|
//+------------------------------------------------------------------+
void ModifyOrder(int ord_ticket,double op, double price,double
tp)//修改订单
{
int CloseCnt, err;
CloseCnt=0;
while(CloseCnt < 3)
}
//+------------------------------------------------------------------+
//| HandleTrailingStop
|
//| Type 1 moves the stoploss without delay.
|
//| Type 2 waits for price to move the amount of the trailStop
|
//| before moving stop loss then moves like type 1
|
//| Type 3 uses up to 3 levels for trailing stop
|
//|
Level 1 Move stop to 1st level
|
//|
Level 2 Move stop to 2nd level
|
//|
Level 3 Trail like type 1 by fixed amount other
than 1
|
//| Possible future types
|
//| Type 4 uses 2 for 1, every 2 pip move moves stop 1 pip
|
//| Type 5 uses 3 for 1, every 3 pip move moves stop 1 pip
|
//+------------------------------------------------------------------+
int HandleTrailingStop(string type, int ticket, double op,
double os, double tp)
{
double pt, TS=0;
double bos,bop,opa,osa;//处理止损水平
if (type=="BUY")
if (type== "SELL")
return(0);
}
//+------------------------------------------------------------------+
//| Get number of lots for this trade
|
//+------------------------------------------------------------------+
double GetLots() //获取下单量
{
double lot;
if(MoneyManagement)
return(lot);
}
//+------------------------------------------------------------------+
//| Calculate optimal lot size
|
//+------------------------------------------------------------------+
double LotsOptimized() //下单量计算
{
//---- select lot size
}
//+------------------------------------------------------------------+
//| Time frame interval appropriation
function
|
//+------------------------------------------------------------------+
int func_TimeFrame_Const2Val(int Constant)
{
//+------------------------------------------------------------------+
//| Time frame string appropriation function
|
//+------------------------------------------------------------------+
string func_TimeFrame_Val2String(int Value)
{

加载中…