Specifiche
hi
this is moving expert ,and free,
is cod expert
///////////////////////////////////////////
//+------------------------------------------------------------------+
//| abed.mq4 |
//| Copyright 2021, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double EMA_FAST=9;
extern double EMA_MAID=12;
extern double EMA_LONG=26;
extern double risk=1;
float RISK=0;
extern int TIME_TRAD=30;
extern int TP=20;
extern int LS=20;
extern double LATMAX=10;
extern double MAX=3500;
extern double LOW=2500;
double pt=0;
double ma9=0;
double ma26=0;
double ma50=0;
double ma100=0;
double ma200=0;
double ma4=0;
double hist,set=0;
double profit=0;
double lottotal;
int contbuy,contsell; double contpofit,contbuyprofit,contsellprofit;
string symbol,symbol2,close;
int i1; double Balance;
int tayp;
float lat;
float r=0;
double stoplass;
void OnInit()//---فقط موقعه راه اندازی یک بار اجرا میشود
{
pt=Point;
if(Digits == 3||Digits == 5)
{
pt=pt*10;
}
Balance = AccountBalance();
MAX=MAX+Balance;
LOW=Balance - LOW;
RISK=risk/100;
}
void start()
{
//////////////////////////////شروع برنامه ////////////////////
Sleep(1000);
i1++; if(i1>13)i1=0;
select();
conter();
//closing();
lot_total();
moving();
take();
contpofit=contbuyprofit+contsellprofit;
string str1="\n"+
" CONT BUY = " + contbuy + " CONT SELL = " + contsell+
"\n CONT BUY PROFIT = " + contbuyprofit + " CONT SELL PROFIT = " + contsellprofit+
" TOTAL PROFIT = " + AccountBalance() + " \n\n LAT_OPT = " + r+
"\n GetLastError = " +GetLastError() +
"\n symbol_Teraded = "+symbol2+
"\n symbol_Terading ="+ symbol+
"\nlot_total ="+lottotal+
"\n closing = "+close;
Comment(str1);
///////////////////////////////////////////////////////////
/////////////////////////ارسال پوزیشن اول//////////////////
replace();
if(OrdersTotal()<15&&StringFind(symbol2,symbol)<0&&lottotal<LATMAX)
{
if(ma9>ma26&&MarketInfo(symbol,MODE_ASK)>ma9&&MarketInfo(symbol,MODE_ASK)>ma26&&ma26>ma50)//buy
{
stoplass=MarketInfo(symbol,MODE_ASK)-LS*pt;
lat_siz_opt();
OrderSend(symbol,OP_BUY,r,MarketInfo(symbol,MODE_ASK),5,0,0,"buy_moving",1111,0,Blue);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-LS*pt,OrderOpenPrice()+TP*pt,0,0);
set=0;
}
//////////////////////////////////////////////////////////////////////////////////////
if(ma9<ma26&&MarketInfo(symbol,MODE_BID)<ma9&&MarketInfo(symbol,MODE_BID)<ma26&&ma26<ma50)//sell
{
stoplass=MarketInfo(symbol,MODE_BID)+LS*pt;
lat_siz_opt();
OrderSend(symbol,OP_SELL,r,MarketInfo(symbol,MODE_BID),5,0,0,"sell_moving",1111,0,Red);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+LS*pt,OrderOpenPrice()-TP*pt,0,0);
set=0;
}
}
}
////////////////////////////////پایان برنامه////////////////////
///////////////////////شروع توابع برنامه//////////////////////
///////////////////////محاسبه مقدار سود و ضرر///////////////
void conter()
{
contbuy=0;
contsell=0;
contpofit=0;
contbuyprofit=0;
contsellprofit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderType()==OP_BUY)
{
contbuy=contbuy+1;
contbuyprofit=contbuyprofit+OrderProfit();
}
if(OrderType()==OP_SELL)
{
contsell=contsell+1;
contsellprofit=contsellprofit+OrderProfit();
}
}
//////////////////بستن ربات معاملاتی///////////
if(AccountEquity()> MAX)
{
ExpertRemove();
}
if(AccountEquity()< LOW)
{
ExpertRemove();
}
}
//////////////////////////اصلاح استاپ لاس////////////////////////////
void closing()
{
for(int i=OrdersTotal();i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==symbol)
{
moving();
if(ma9<ma26&&OrderType()== OP_BUY)///////////////////buyclose_step1
{
OrderClose(i,OrderLots(),Bid,5,Aqua);
close= OrderSymbol();
}
if(ma9>ma26&&OrderType()== OP_SELL)///////////////////sellclose_step1
{
OrderClose(i,OrderLots(),Bid,5,Aqua);
close= OrderSymbol();
}
}
}
}
////////////////////////محاسبه لات بهینه///////
double lat_siz_opt()
{
double eqaite=AccountBalance()*RISK;
double latsize=MarketInfo(symbol,MODE_LOTSIZE);
double tickt=MarketInfo(symbol,MODE_TICKVALUE);
r = eqaite/(MathAbs(MarketInfo(symbol,MODE_BID)-stoplass)*latsize*tickt);
stoplass=0;
return(r);
}
////////////////////////
void select()
{
if(i1==1) symbol="USDCHF";
if(i1==2) symbol="GBPUSD";
if(i1==3) symbol="EURUSD";
if(i1==4) symbol="USDCAD";
if(i1==5) symbol="AUDUSD";
if(i1==6) symbol="EURGBP";
if(i1==7) symbol="EURAUD";
if(i1==8) symbol="EURCHF";
if(i1==9) symbol="GBPCHF";
if(i1==10) symbol="NZDUSD";
if(i1==11) symbol="AUDNZD";
if(i1==12) symbol="AUDCHF";
if(i1==13) symbol="CADCHF";
}
////////////
void replace()
{
symbol2="";
for(int i=OrdersTotal();i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==1111)
{
StringAdd(symbol2,OrderSymbol());
StringAdd(symbol2,"_");
}
}
}
///////////////
void lot_total()
{
lottotal=0;
for(int i=OrdersTotal();i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==1111)
{
lottotal=lottotal+OrderLots();
}
}
}
////////////////////////////////
void moving()
{
//////////
ma9=iMA(symbol,TIME_TRAD,EMA_FAST,0,MODE_EMA,PRICE_CLOSE,0);
ma26=iMA(symbol,TIME_TRAD,EMA_MAID,0,MODE_EMA,PRICE_CLOSE,0);
ma50=iMA(symbol,TIME_TRAD,EMA_LONG,0,MODE_EMA,PRICE_CLOSE,0);
ma100=iMA(symbol,TIME_TRAD,100,0,MODE_EMA,PRICE_CLOSE,0);
}
void take()
{
for(int i=OrdersTotal();i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderProfit()>20)
{
OrderClose(OrderTicket(),OrderLots(),Bid,5,Aqua);
}
}
}