النتائج 1 إلى 7 من 7
- 10-12-2020, 02:15 PM #1
معى اكسبيرا mt4 اريد احوله الى mt5 او طلب عمل اكسبيرت mt5 فكرته بسيطة جدا جدا
السلام عليكم ورحمة الله وبركاته
كما بالعنوان
معى اكسبيرا mt4 اريد احوله الى mt5
الاكسبيرت فكرته بسيطة جدا وهى انى بحدد الوقت اللى هتتفتح فيه الصفقة مثلا الساعة 15 واللوت ( حجم النقطة ) والهدف والاستوب ... بس كدة يا مؤمن .
اريد نسخة من هذا الاكسبيرت تعمل على منصة mt5
الكسبيرت ال mt4 فى المرفقات
وجزاكم الله خيرا مقدما .
- 12-12-2020, 07:31 AM #2
يا جماعة هو انا طلبى صعب اوى الله المستعان
- 15-12-2020, 02:09 PM #3
قولى فكرة الاسكبرت
- 15-12-2020, 08:28 PM #4
- 18-12-2020, 01:48 AM #5
جرب هذا الكود
كود PHP://+------------------------------------------------------------------+
//| TimingTrade.mq5 |
//| Copyright 2020, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object
enum trade{
op_buy,
op_sell
};
input int MagicNumber = 767343;
input trade OpenTrade = op_buy;
input string TradeTime = "01:00";
input double LoteSize = 0.1;
input int TakeProfit = 1000,
StopLoss = 1000;
double handle_iAC,pnt,Ticksize,TP,SL,openp,range;
int dig,barTime,pr,bar_op;
static string EAComment,_sym=Symbol(),str_trade="non";
double symbid,symask,_Lot;
long Volume;
bool a;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if (!m_symbol.Name(Symbol())) return(INIT_FAILED); // sets symbol name
m_trade.SetExpertMagicNumber(MagicNumber);
Ticksize = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
pnt=m_symbol.Point()*10;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
double Total = trades_Position(0)+trades_Position(1);
//---
if(TimeCurrent() >= StringToTime(TradeTime) && barTime != iBars(NULL,PERIOD_D1)){
if(OpenTrade == op_buy && Total == 0)Trade_Buy();
if(OpenTrade == op_sell && Total == 0)Trade_Sell();
}
Comment(SL," ",TP," ",barTime);
}
//+==================================================================+
//| FUNCTIONS: Trade_Buy |
//+==================================================================+
void Trade_Buy()
{
EAComment="EA "+Symbol()+" "+TimeToString(Period());
symbid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
symask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double price=0;
string com="EA_"+string(MagicNumber);
m_trade.SetExpertMagicNumber(MagicNumber);
if(StopLoss==0){SL=0;}else{SL=symask-StopLoss*pnt;}
if(TakeProfit==0){TP=0;}else{TP=symask+TakeProfit*pnt;}
price=symask;
m_trade.Buy(LoteSize,NULL,price,SL,TP,com);
barTime = iBars(NULL,PERIOD_D1);
Comment(SL,TP);
}
void Trade_Sell()
{
EAComment="EA "+Symbol()+" "+TimeToString(Period());
symbid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
symask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double price=0;
string com="EA_"+string(MagicNumber);
m_trade.SetExpertMagicNumber(MagicNumber);
if(StopLoss==0){SL=0;}else{SL=symbid+StopLoss*pnt;}
if(TakeProfit==0){TP=0;}else{TP=symbid-TakeProfit*pnt;}
price=symbid;
m_trade.Sell(LoteSize,NULL,price,SL,TP,com);
barTime = iBars(NULL,PERIOD_D1);
Comment(SL,TP);
}
//+------------------------------------------------------------------+
//| FUNCTIONS: Manage trades |
//+------------------------------------------------------------------+
int trades_Position(int t)
{
MqlTradeRequest request;
int total=PositionsTotal();
int count=0;
for (int cnt=0; cnt<=total-1; cnt++)
{
if(PositionSelect(Symbol()) )
{
if(PositionGetInteger(POSITION_MAGIC)==MagicNumber && PositionGetInteger(POSITION_TYPE)==t)
if(request.position == PositionGetTicket(cnt))
{
count++;
}
}
}
return(count);
}
//+------------------------------------------------------------------+
//| FUNCTIONS: Manage trades |
//+------------------------------------------------------------------+
double trades_Profit()
{
MqlTradeRequest request;
int total=PositionsTotal();
double count=0;
for (int cnt=0; cnt<=total-1; cnt++)
{
if(PositionSelect(Symbol()) )
{
if(PositionGetInteger(POSITION_MAGIC)==MagicNumber)
if(request.position == PositionGetTicket(cnt))
{
count+=PositionGetDouble(POSITION_PROFIT);
}
}
}
return(count);
}
آخر تعديل بواسطة elassari ، 18-12-2020 الساعة 01:50 AM
- 19-12-2020, 07:09 PM #6
اخى العزيز هل هذا يعمل على الحسابات الحقيقية ؟؟
على اى حال سوف اجربه الاسبوع المقبل ان شاء الله واخبرك ماذا حدث
- 21-12-2020, 02:17 AM #7
اشتغل اخى جزاك الله خيرا