هذه الصورة الملف المرفق 427136
Printable View
هذه الصورة الملف المرفق 427136
استاذ اسامه طلب تحديث الكد التالي بعد تحديث المتاتريدر توقف عن العمل
https://forum.arabictrader.com/t214762.html
شوف هذه الروابط حتفيدك وهذا الرابط الأهم فيه شرح تفصيلي
https://forum.arabictrader.com/t138523.html
وهذا الرابط جميع المواضيع لهذا البرنامج هنا في المنتدى
https://www.google.com.sa/search?q=a...w=1366&bih=643
أحاول عمل اكسبيرت يفتح الصفقة حسب الدقيقة
اذا كانت الدقيقة رقم زوجي تكون الصفقة شراء والعكس واستخدمت الكود التاليلكن المشكلة انه يستمر فى فتح الصفقات افيري تيك على الرغم من انني استخدم هذه الحلقة لعدم فتح صفقات اذا كان هناك صفقات مفتوحةكود:if(Minute()==00||Minute()==02||Minute()==04||Minute()==06||Minute()==08||Minute()==10||Minute()==12||Minute()==14||Minute()==16||Minute()==18||Minute()==20||Minute()==22||Minute()==24||Minute()==26||Minute()==28||Minute()==30||Minute()==32||Minute()==34||Minute()==36||Minute()==38||Minute()==40||Minute()==42||Minute()==44||Minute()==46||Minute()==48||Minute()==50||Minute()==52||Minute()==54||Minute()==56||Minute()==58) Buy_Market();
if(Minute()==01||Minute()==03||Minute()==05||Minute()==07||Minute()==09||Minute()==11||Minute()==13||Minute()==15||Minute()==17||Minute()==19||Minute()==21||Minute()==23||Minute()==25||Minute()==27||Minute()==29||Minute()==31||Minute()==33||Minute()==35||Minute()==37||Minute()==39||Minute()==41||Minute()==43||Minute()==45||Minute()==47||Minute()==49||Minute()==51||Minute()==53||Minute()==55||Minute()==57||Minute()==59) Sell_Market();
ما المشكلةكود:TotalOrder=0;
for(int i=OrdersTotal()-1;i>=0;i--){
if (OrderSelect( i,SELECT_BY_POS,MODE_TRADES) )
if( OrderSymbol() ==Symbol()&& OrderMagicNumber()== MagicNo){
TotalOrder++;
}
ارجو المساعدة
المشكلة بسيطة واعتقد انك تحتاج الى شرط اضافي وأن يكون تشغيل الأكسبيرت على فريم الدقيقة المشكلة الثانية أنت عارف الكود وسبق لك استخدامه
في المتغيرات
في الشرطكود PHP:datetime dnx;
وفك الشرط مع التنفيذكود PHP:TotalOrder()==0 && dnx!=Time[0]
كود PHP:dnx=Time[0];
شكرا اخي جميل على ردك السريع
لكن تاهت ولخبط الدنيا
هذا الاكسبيرت ممكن تساعدني اين اضع الاكواد التى شرحتها حضرتك
لاني وضعتها ووجدت اخطأ
وشكرا
كود:extern int MagicNo=12345;
extern double Lot=0.01;
extern int Stoploss=20;
extern int Takeprofit=20;
extern double Multi_Factor=2;
double LastProfitH, LastLot;
datetime dnx;
double points;
int cts;
int TotalOrder;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if (Digits==3||Digits==5) cts=10;
if ( Digits==2||Digits==4) cts=1;
points=Point*cts;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
LastProfitH=0; LastLot=0;
for(int i =0;i<OrdersHistoryTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo){
LastLot=OrderLots(); LastProfitH=OrderProfit();
}
}
//---
TotalOrder()==0&&dnx![0];
for(int i=OrdersTotal()-1;i>=0;i--){
if (OrderSelect( i,SELECT_BY_POS,MODE_TRADES) )
if( OrderSymbol() ==Symbol()&& OrderMagicNumber()== MagicNo){
TotalOrder++;
}
}
if(Minute()==00||Minute()==02||Minute()==04||Minute()==06||Minute()==08||Minute()==10||Minute()==12||Minute()==14||Minute()==16||Minute()==18||Minute()==20||Minute()==22||Minute()==24||Minute()==26||Minute()==28||Minute()==30||Minute()==32||Minute()==34||Minute()==36||Minute()==38||Minute()==40||Minute()==42||Minute()==44||Minute()==46||Minute()==48||Minute()==50||Minute()==52||Minute()==54||Minute()==56||Minute()==58) Buy_Market();
if(Minute()==01||Minute()==03||Minute()==05||Minute()==07||Minute()==09||Minute()==11||Minute()==13||Minute()==15||Minute()==17||Minute()==19||Minute()==21||Minute()==23||Minute()==25||Minute()==27||Minute()==29||Minute()==31||Minute()==33||Minute()==35||Minute()==37||Minute()==39||Minute()==41||Minute()==43||Minute()==45||Minute()==47||Minute()==49||Minute()==51||Minute()==53||Minute()==55||Minute()==57||Minute()==59) Sell_Market();
}
void Buy_Market()
{
double SL=0,TP=0,NewLot=Lot;
if(Multi_Factor>0 && LastProfitH<0) NewLot=LastLot*Multi_Factor;
if(Stoploss>0) SL= Ask- Stoploss*points; else SL=0;
if(Takeprofit>0) TP=Ask+Takeprofit*points; else TP=0;
int ticket =OrderSend(Symbol(),OP_BUY,NewLot,Ask,30,SL,TP,"",MagicNo,0,clrGreen);
}
void Sell_Market()
{
double SL=0,TP=0,NewLot=Lot;
if(Multi_Factor>0 && LastProfitH<0) NewLot=LastLot*Multi_Factor;
if(Stoploss>0) SL= Bid+ Stoploss*points; else SL=0;
if (Takeprofit>0) TP=Bid-Takeprofit*points; else TP=0;
int ticket =OrderSend(Symbol(),OP_SELL,NewLot,Bid,30,SL,TP,"",MagicNo,0,clrRed);
}
[QUOTE=sem2020;2909424]شكرا اخي جميل على ردك السريع
لكن تاهت ولخبط الدنيا
هذا الاكسبيرت ممكن تساعدني اين اضع الاكواد التى شرحتها حضرتك
لاني وضعتها ووجدت اخطأ
وشكرا
تفضل عملت لك كود سريع لأنشغالي وستجد فيه ماتريد
كود PHP://+------------------------------------------------------------------+
//| 11111111111.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
datetime dnx;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(TotalOrder()==0 && dnx!=Time[0]){
dnx=Time[0];
if(Minute()==00||Minute()==02||Minute()==04||Minute()==06||Minute()==08||Minute()==10||Minute()==12||Minute()==14||Minute()==16||Minute()==18||
Minute()==20||Minute()==22||Minute()==24||Minute()==26||Minute()==28||Minute()==30||Minute()==32||Minute()==34||Minute()==36||Minute()==38||
Minute()==40||Minute()==42||Minute()==44||Minute()==46||Minute()==48||Minute()==50||Minute()==52||Minute()==54||Minute()==56||Minute()==58)
int ticket1=OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",123,0,clrGreen);
if(Minute()==01||Minute()==03||Minute()==05||Minute()==07||Minute()==09||Minute()==11||Minute()==13||Minute()==15||Minute()==17||Minute()==19||
Minute()==21||Minute()==23||Minute()==25||Minute()==27||Minute()==29||Minute()==31||Minute()==33||Minute()==35||Minute()==37||Minute()==39||
Minute()==41||Minute()==43||Minute()==45||Minute()==47||Minute()==49||Minute()==51||Minute()==53||Minute()==55||Minute()==57||Minute()==59)
int ticket2=OrderSend(Symbol(),OP_SELL,0.01,Bid,30,0,0,"",123,0,clrRed);
}
}
//+------------------------------------------------------------------+
int TotalOrder(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber() == 123){
cnt++;
}
}
}
return(cnt);
}
[QUOTE=Jmeel;2909431]انا عملت الاكسبيرت لكن عندي مشكلتين مش عارف احلهم
الاولى المضاعفات تضبط مع البيع او الشراء لكن اذا وضعتها مع الاثنين معا أي شراء وبيع لا يفتح صفقات
وايضا اذا حققت اخر صفقة ربح لا يرجع للوت الاصلى
المشكلة الاخري وقف الخسارة و اخذ الربح مش عارف اجعله ياخدهم من الاعدادات الخارجية استخدمت هذه المعادلة
ولم تنفع اعطاني وقف الخسارة 1.0000كود:if(Stoploss>0) SL= Bid+ Stoploss*points; else SL=0;
منذ 24 ساعة احاول ولا فائدة
ارجو المساعدة
هذا هو الاكسبيرت كامل اين الخطأكود:extern int MagicNo=12345;
extern double Lot=0.01;
extern int Takeprofit=20;
extern int StopLoss=20;
extern double Multi_Factor=2;
double LastProfitH, LastLot,NewLot;
double points;
int cts;
int TotalOrder;
int TP,TP2,SL,SL2;
datetime dnx;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(Digits==3||Digits==5) cts=10;
if(Digits==2||Digits==4) cts=1;
points=Point*cts;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(Multi_Factor>0 && LastProfitH<0) NewLot=LastLot*Multi_Factor;
if(StopLoss>0) SL= Ask-StopLoss*points; else SL=0;
if(TotalOrder()==0 && dnx!=Time[0]){
dnx=Time[0];
if(Minute()==00||Minute()==02||Minute()==04||Minute()==06||Minute()==08||Minute()==10||Minute()==12||Minute()==14||Minute()==16||Minute()==18||
Minute()==20||Minute()==22||Minute()==24||Minute()==26||Minute()==28||Minute()==30||Minute()==32||Minute()==34||Minute()==36||Minute()==38||
Minute()==40||Minute()==42||Minute()==44||Minute()==46||Minute()==48||Minute()==50||Minute()==52||Minute()==54||Minute()==56||Minute()==58)
int ticket1=OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-0.01,Ask+0.011,"",MagicNo,0,clrGreen);
if(Minute()==01||Minute()==03||Minute()==05||Minute()==07||Minute()==09||Minute()==11||Minute()==13||Minute()==15||Minute()==17||Minute()==19||
Minute()==21||Minute()==23||Minute()==25||Minute()==27||Minute()==29||Minute()==31||Minute()==33||Minute()==35||Minute()==37||Minute()==39||
Minute()==41||Minute()==43||Minute()==45||Minute()==47||Minute()==49||Minute()==51||Minute()==53||Minute()==55||Minute()==57||Minute()==59)
int ticket2=OrderSend(Symbol(),OP_SELL,NewLot,Bid,30,Bid+0.01,Bid-0.011,"",MagicNo,0,clrRed);
}
}
//+------------------------------------------------------------------+
int TotalOrder(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo){
cnt++;
}
}
}
LastProfitH=0; LastLot=0;
for(int i =0;i<OrdersHistoryTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo){
LastLot=OrderLots(); LastProfitH=OrderProfit();
}
}
return (cnt);
}
السلام عليكم ورحمة الله وبركاته
اشكر كل القائمين على هذا القسم الرائع والذى تعملت منه الكثير
لدى طلب بسيط لو تكرمتم
اذا كان لدينا اكثر من صفقه مفتوحه على زوج ولكل صفقه لوت والصفقات بيع وشراء
كيف نحسب نقطة التوازن لكل نوع؟
السلام عليكم استاذى الكريم مستر دولار
واخى الكريم جميل
ماهى افضل طريقة واسهل طريقة من تحويل مؤشر او اكسبيرت من mql4 الى 5
ولكم الشكر والتقدير