Исходный код · ID 300
ma_crossover_expert_v1.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 общих тегов
Вы автор или правообладатель?
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ma_crossover_expert_v1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Поиск по коду файла
#include <stdlib.mqh>
extern bool Debug = false; // Change to true to allow print
extern bool AccountIsMini = false; // Change to true if trading mini account
extern bool MoneyManagement = true; // Change to false to shutdown money management controls.
extern double Riskpercent = 5; // Change to whatever percent of equity you wish to risk.
extern double DecreaseFactor = 3; // Used to decrease lot size after a loss is experienced to protect equity. Recommended not to change.
extern double StopLoss = 35; // Maximum pips willing to lose per position.
extern double TrailingStop = 0; // Change to whatever number of pips you wish to trail your position with.
extern double Margincutoff = 800; // Expert will stop trading if equity level decreases to that level.
extern double Maxtrades = 10; // Total number of positions on all currency pairs. You can change this number as you wish.
extern int TakeProfit = 0; // Maximum profit level achieved.
extern int Slippage = 10; // Possible fix for not getting filled or closed
extern int FasterMode = 3; //0=sma, 1=ema, 2=smma, 3=lwma, 4 = lsma
extern int FastMAPeriod = 5;
extern int SlowerMode = 1; //0=sma, 1=ema, 2=smma, 3=lwma, 4 = lsma
extern int SlowMAPeriod = 120;
extern bool UseJuice = false;
extern int JuicePeriod= 7;
extern int JuiceLevel= 4;
extern double Lots = 1; // standard lot size.
extern bool Turnon = true; // Turns expert on, change to false and no trades will take place even if expert is enabled.
string OrderText = "";
double lotMM;
int TradesInThisSymbol;
datetime LastTime;
double Sl;
double Tr;
bool OK2Buy, OK2Sell; // determines if buy or sell trades are allowed
bool FlatMarket;
int NumBuys, NumSells; // Number of buy and sell trades in this symbol
bool first_time = true; // Used to check if first call to SilverTrend
int init()
{
// код доступен только после оплаты
}
int deinit()
{
int handle;
if (Debug)
{
handle = GlobalVariableGet("MyHandle");
FileFlush(handle);
FileClose(handle);
GlobalVariableDel("MyHandle");
}
return(0);
}
int Write(string str)
{
int handle;
handle = GlobalVariableGet("MyHandle");
FileWrite(handle,str,"\r\n");
}
double Juice(int shift, int period, int level)
{
double osma= 0;
osma= iStdDev(NULL,0, period, MODE_EMA, 0, PRICE_CLOSE,shift) - level*Point;
return (osma); // return last computed value
}
double LSMA(int Rperiod, int shift)
{
int i;
double sum;
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;
tmp = ( i - lengthvar)*Close[length-i+shift];
sum+=tmp;
}
wt = sum*6/(length*(length+1));
return(wt);
}
bool CheckExitCondition(string TradeType)
{
bool YesClose;
double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter;
YesClose = false;
if (FasterMode == 4)
{
fasterMAnow = LSMA(FastMAPeriod, 2);
fasterMAprevious = LSMA(FastMAPeriod,3);
fasterMAafter = LSMA(FastMAPeriod, 1);
}
else
{
fasterMAnow = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 2);
fasterMAprevious = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 3);
fasterMAafter = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 1);
}
if (SlowerMode == 4)
{
slowerMAnow = LSMA(SlowMAPeriod, 2);
slowerMAprevious = LSMA(SlowMAPeriod,3);
slowerMAafter = LSMA(SlowMAPeriod, 1);
}
else
{
slowerMAnow = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 2);
slowerMAprevious = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 3);
slowerMAafter = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 1);
}
if (TradeType == "BUY") // Check for cross down
{
if ((fasterMAnow < slowerMAnow) && (fasterMAprevious > slowerMAprevious) && (fasterMAafter < slowerMAafter))
{
YesClose = true;
}
}
if (TradeType == "SELL") // Check for cross up
{
if ((fasterMAnow > slowerMAnow) && (fasterMAprevious < slowerMAprevious) && (fasterMAafter > slowerMAafter))
{
YesClose =true;
}
}
return (YesClose);
}
bool CheckEntryCondition(string TradeType)
{
bool YesTrade;
double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter;
YesTrade = false;
if (FasterMode == 4)
{
fasterMAnow = LSMA(FastMAPeriod, 2);
fasterMAprevious = LSMA(FastMAPeriod,3);
fasterMAafter = LSMA(FastMAPeriod, 1);
}
else
{
fasterMAnow = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 2);
fasterMAprevious = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 3);
fasterMAafter = iMA(NULL, 0, FastMAPeriod, 0, FasterMode, PRICE_CLOSE, 1);
}
if (SlowerMode == 4)
{
slowerMAnow = LSMA(SlowMAPeriod, 2);
slowerMAprevious = LSMA(SlowMAPeriod,3);
slowerMAafter = LSMA(SlowMAPeriod, 1);
}
else
{
slowerMAnow = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 2);
slowerMAprevious = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 3);
slowerMAafter = iMA(NULL, 0, SlowMAPeriod, 0, SlowerMode, PRICE_CLOSE, 1);
}
if (TradeType == "BUY") // Check for cross up
{
if ((fasterMAnow > slowerMAnow) && (fasterMAprevious < slowerMAprevious) && (fasterMAafter > slowerMAafter))
{
YesTrade = true;
}
}
if (TradeType == "SELL") // Check for cross down
{
if ((fasterMAnow < slowerMAnow) && (fasterMAprevious > slowerMAprevious) && (fasterMAafter < slowerMAafter))
{
YesTrade =true;
}
}
return (YesTrade);
}
int CheckFilters()
{
if (UseJuice)
{
if (Juice(1, JuicePeriod, JuiceLevel) <= 0) return(0);
}
return (1);
}
int start()
{
// код доступен только после оплаты
}
datetime DoTrades(string OrdText, string SetupStr,int MagicNum,double lotM, double SSl, double TTr, datetime LstTime)
{
double Min_OrderPrice;
int err,tries;
double dtries;
int ticket;
datetime lsttim;
lsttim = LstTime;
if(OrdText == "BUY")
{
Min_OrderPrice=MinOrderPrice(OP_BUY, MagicNum);
if (Min_OrderPrice>0 && Min_OrderPrice<=Ask*1.05) {
Print("Buy too expensive => MinOrderPrice= " + Min_OrderPrice + " Ask=" + Ask);
} else {
tries = 0;
while (tries < 3)
{
ticket = OrderSend(Symbol(),OP_BUY,lotM,Ask,Slippage,SSl,TTr,SetupStr,MagicNum,0,Green);
if (Debug)
{
dtries = tries;
Print ("Buy at ",TimeToStr(CurTime())," for ",Ask, " try:",tries);
Write ("Buy at " + TimeToStr(CurTime()) + " for " + DoubleToStr(Ask,4) +Показано первые 50% кода (символов: 12837)
Что вы получите после оплаты
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? Адрес передаётся вместе с заказом в магазин и сохраняется для связи заказа с оплатой. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.
Стоимость полного кода: 1 284 ₽ (≈ $15.16 USDT)