Исходный код · ID 2564
doublema_breakout_ea.mq4
Похожие материалы по тегам
ea robofibo source v.11.2.mq4MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MetaTrader 4 · 1 общих теговnewstrader.mq5MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown.mq5MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «doublema_breakout_ea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Поиск по коду файла
#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.
extern double TradeSizePercent = 5; // Change to whatever percent of equity you wish to risk.
extern double Lots = 3; // standard lot size.
extern double MaxLots = 100;
extern int FastMA_Mode = 0; //0=sma, 1=ema, 2=smma, 3=lwma, 4=LSMA
extern int FastMA_Period = 2;
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;
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
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";
int MagicNumber;
string setup;
bool YesStop;
double lotMM;
int TradesInThisSymbol;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
}
double LSMA(int Rperiod,int prMode, int TimeFrame, int mshift)
{
int i;
double sum, price;
int length;
double lengthvar;
double tmp;
double wt;
length = Rperiod;
sum = 0;
for(i = length; i >= 1 ; i--)
{
lengthvar = length + 1;
lengthvar /= 3;
tmp = 0;
switch (prMode)
{
case 0: price = iClose(NULL,TimeFrame,length-i+mshift);break;
case 1: price = iOpen(NULL,TimeFrame,length-i+mshift);break;
case 2: price = iHigh(NULL,TimeFrame,length-i+mshift);break;
case 3: price = iLow(NULL,TimeFrame,length-i+mshift);break;
case 4: price = (iHigh(NULL,TimeFrame,length-i+mshift) + iLow(NULL,TimeFrame,length-i+mshift))/2;break;
case 5: price = (iHigh(NULL,TimeFrame,length-i+mshift) + iLow(NULL,TimeFrame,length-i+mshift) + iClose(NULL,TimeFrame,length-i+mshift))/3;break;
case 6: price = (iHigh(NULL,TimeFrame,length-i+mshift) + iLow(NULL,TimeFrame,length-i+mshift) + iClose(NULL,TimeFrame,length-i+mshift) + iClose(NULL,TimeFrame,length-i+mshift))/4;break;
}
tmp = ( i - lengthvar)*price;
sum+=tmp;
}
wt = sum*6/(length*(length+1));
return(wt);
}
bool CheckExitCondition(string TradeType)
{
bool YesClose;
double fMA, sMA;
YesClose = false;
if (FastMA_Mode == 4)
{
fMA = LSMA(FastMA_Period,FastMA_AppliedPrice,0,SignalCandle);
}
else
{
fMA = iMA(NULL, 0, FastMA_Period, FastMA_Shift, FastMA_Mode, FastMA_AppliedPrice, SignalCandle);
}
if (SlowMA_Mode == 4)
{
sMA = LSMA(SlowMA_Period,SlowMA_AppliedPrice,0,SignalCandle);
}
else
{
sMA = iMA(NULL, 0, SlowMA_Period, SlowMA_Shift, SlowMA_Mode, SlowMA_AppliedPrice, SignalCandle);
}
if (TradeType == "BUY" && fMA - sMA < 0) YesClose = true;
if (TradeType == "SELL" && fMA - sMA > 0) YesClose = true;
return (YesClose);
}
bool CheckEntryCondition(string TradeType)
{
bool YesTrade;
double fMA, sMA;
YesTrade = false;
if (FastMA_Mode == 4)
{
fMA = LSMA(FastMA_Period,FastMA_AppliedPrice,0,SignalCandle);
}
else
{
fMA = iMA(NULL, 0, FastMA_Period, FastMA_Shift, FastMA_Mode, FastMA_AppliedPrice, SignalCandle);
}
if (SlowMA_Mode == 4)
{
sMA = LSMA(SlowMA_Period,SlowMA_AppliedPrice,0,SignalCandle);
}
else
{
sMA = iMA(NULL, 0, SlowMA_Period, SlowMA_Shift, SlowMA_Mode, SlowMA_AppliedPrice, SignalCandle);
}
if (TradeType == "BUY" && fMA - sMA > 0) YesTrade = true;
if (TradeType == "SELL" && fMA - sMA < 0 ) YesTrade = true;
return (YesTrade);
}
int start()
{
// код доступен только после оплаты
}
void OpenBuyStopOrder()
{
int err,ticket;
double myStopLoss = 0, myTakeProfit = 0;
double LongTradeRate = Ask + BreakOutLevel*Point;
myStopLoss = 0;
if ( StopLoss > 0 ) myStopLoss = LongTradeRate-Point*StopLoss ;
myTakeProfit = 0;
if (TakeProfit>0) myTakeProfit = LongTradeRate+Point*TakeProfit;
ticket=OrderSend(Symbol(),OP_BUYSTOP,lotMM,LongTradeRate,0,myStopLoss,myTakeProfit,setup,MagicNumber,0,Green);
if(ticket<=0)
{
err = GetLastError();
Print("Error opening BUY STOP order [" + setup + "]: (" + err + ") " + ErrorDescription(err));
}
}
void OpenSellStopOrder()
{
int err, ticket;
double myStopLoss = 0, myTakeProfit = 0;
double ShortTradeRate = Bid - BreakOutLevel * Point;
myStopLoss = 0;
if ( StopLoss > 0 ) myStopLoss = ShortTradeRate+Point*StopLoss ;
myTakeProfit = 0;
if (TakeProfit > 0) myTakeProfit = ShortTradeRate-Point*TakeProfit;
ticket=OrderSend(Symbol(),OP_SELLSTOP,lotMM,ShortTradeRate,0,myStopLoss,myTakeProfit,setup,MagicNumber,0,Red);
if(ticket<=0)
{
err = GetLastError();
Print("Error opening Sell order [" + setup + "]: (" + err + ") " + ErrorDescription(err));
}
}
int openPositions( )
{ int op =0;
for(int i=OrdersTotal()-1;i>=0;i--) // scan all orders and positions...
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != MagicNumber) continue;
if ( OrderSymbol()==Symbol() )
{
if ( OrderType() == OP_BUY ) op++;
if ( OrderType() == OP_SELL ) op++;
}
}
return(op);
}
int openStops()
{ int op =0;
for(int i=OrdersTotal()-1;i>=0;i--) // scan all orders and positions...
{
OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() != MagicNumber) continue;
if ( OrderSymbol()==Symbol() )
{
if ( OrderType() == OP_BUYSTOP ) op++;
if ( OrderType() == OP_SELLSTOP ) op++;
}
}
return(op);
}
int HandleOpenPositions()
{
int cnt;
bool YesClose;
double pt;
for(cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
if ( OrderSymbol() != Symbol()) continue;
if ( OrderMagicNumber() != MagicNumber) continue;
if(OrderType() == OP_BUY)
{
if (CheckExitCondition("BUY"))
{
CloseOrder(OrderTicket(),OrderLots(),Bid);
}
Показано первые 50% кода (символов: 11571)
Что вы получите после оплаты
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? Адрес передаётся вместе с заказом в магазин и сохраняется для связи заказа с оплатой. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.
Стоимость полного кода
1 157₽
≈ $13.60