النتائج 7,021 إلى 7,035 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 19-01-2016, 08:19 PM #7021
تفضل
كود PHP://+------------------------------------------------------------------+
//| Moving Average.mq4 |
//| Copyright 2005-2014, MetaQuotes Software Corp. |
//| http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright "2005-2014, MetaQuotes Software Corp."
#property link "http://www.mql4.com"
#property description "Test"
#define MAGICMA 20131111
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//---
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//--- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//+------------------------------------------------------------------+
//| Calculate optimal lot size |
//+------------------------------------------------------------------+
double LastOrderInfo(string info)
{
for(int r=OrdersHistoryTotal()-1;r>=0;r--)
{
bool select=OrderSelect(r,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MAGICMA)
{
if(info=="Type")return(OrderType());
else if(info=="Profit")return(OrderProfit());
}
}
return(0);
}
int TotalLossNumber()
{
int num=0;
for(int y=OrdersHistoryTotal()-1;y>=0;y--)
{
bool select=OrderSelect(y,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MAGICMA)
{
if(OrderProfit()<0)num++;
else return(num);
}
}
return(num);
}
//+------------------------------------------------------------------+
//| Check for open order conditions |
//+------------------------------------------------------------------+
void CheckForOpen()
{
double ma;
int res;
int res1;
//--- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//--- sell conditions
if(Close[1]<Open[1] &&TotalLossNumber()==0 ) //1
{
res=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,"BO exp:60",MAGICMA,0,Red);
}
//--- buy conditions
if(Close[1]>Open[1]&&TotalLossNumber()==0) //2
{
res=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,"BO exp:60",MAGICMA,0,Blue);
}
//---
if(TotalLossNumber()<4&&LastOrderInfo("Profit")<0)
{
if(LastOrderInfo("Type")==OP_BUY)
{
res1=OrderSend(Symbol(),OP_BUY,0.05,Ask,0,0,0,"BO exp:60",MAGICMA,0,Blue);
}
else if(LastOrderInfo("Type")==OP_SELL)
{
res1=OrderSend(Symbol(),OP_SELL,0.05,Bid,0,0,0,"BO exp:60",MAGICMA,0,Red);
}
}
}
//+------------------------------------------------------------------+
//| Check for close order conditions |
//+------------------------------------------------------------------+
void CheckForClose()
{
double ma;
//--- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//--- get Moving Average
//---
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//--- check order type
if(OrderType()==OP_BUY)
{
if(Close[1]<Open[1]) //1
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
if(OrderType()==OP_SELL)
{
if(Close[1]>Open[1]) //2
{
if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
}
//---
}
//+------------------------------------------------------------------+
//| OnTick function |
//+------------------------------------------------------------------+
void OnTick()
{
//--- check for history and trading
if(Bars<100 || IsTradeAllowed()==false)
return;
//--- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//---
}
//+------------------------------------------------------------------+
آخر تعديل بواسطة ENG_MOATASEM ، 19-01-2016 الساعة 08:21 PM
- 20-01-2016, 01:13 AM #7022
السلام عليكم جزاك الله خير ممكن تعديل للكسبرت حيث اريده يعمل فقط على تقاطع الموفنجين بحيث يكون ارقام الموفنجات اختيارى فى وضعهم وليس مقتصر على اى ارقام معينه ولكن المهم يعمل اى تقاطع مع موفنجات التقاطع الاول فتح صفقه والتقاطع الثانى تسكير الصفقه بحيث يكون ادا تم التقاطع فتح الصفقه والهدف عند عمل الموفنج التقاطع العكسي ويفتح صفقه عكسيه وهاكدا بحيث يكون بداية الصفقه فى التقاطع والهدف عند عمل تقاطع العكسى الثانى ويعمل على جميع الفريمات ويكون شقال طوال ايام الاسبوع وجزاك الله خير وشكرا لك
- 20-01-2016, 02:56 PM #7023
- 20-01-2016, 03:37 PM #7024
السلام عليكم و رحمة الله و بركاته
جزاكم الله الف خير
ما هي الصيغة البرمجية او الدالة التي تمكنني من تغيير لون الخلفية للشارت و الوان الشموع فور تشغيل الاكسبيرت
او تحميل تمشكرا جزيلابليت فور وضع الاكسبيرت على الشارت
- 20-01-2016, 11:06 PM #7025
- 20-01-2016, 11:13 PM #7026
قمت بمراجعة الكود وعمل باك تست للإكسبرت فهو يعمل بشكل صحيح بدون مشاكل لكن ينقصك فقط ملاحظه بسيطه
إذا أغلقت 4 صفقات متتاليه على خساره فما هو العمل ؟ في الكود الحالي سوف يتوقف الإكسبرت عن العمل
لكن إذا كنت تريد أن يبدأ الإكسبرت من جديد فيجب أن تضيف الشرط في أمر الشراء والبيع المبدئي
كود PHP:if(Close[1]<Open[1] &&(TotalLossNumber()==0||TotalLossNumber()>=4 ) //1
- 20-01-2016, 11:14 PM #7027
- 20-01-2016, 11:17 PM #7028
- 20-01-2016, 11:18 PM #7029
- 20-01-2016, 11:36 PM #7030
- 21-01-2016, 12:45 AM #7031
- 21-01-2016, 07:33 AM #7032
السلام عليكم استاذى الكريم
على المساعده جزاك الله عنا كل خير
استاذى الكريم
بجرب طريقة العمل
بس لا يعمل معى
معرفش ماهى المشكله هنا
تم العمل بنفس الاعدادات وبنفس الشرح الموجود فى رابط الاسكربت
طبعا هذا اكسبيرت مش اسكربت
ممكن تكون المشكله فى مسار Data Folder
انا بعمل نسخ المسار من المنصه الموجود عليه اكسبيرت AT Copier Master
كان هذا هو شكل المسار
C:\Program Files\MetaTrader NordFX
ممكن تكون المشكله فيه
ارجو المساعده
ولك الشكر والتقدير
- 21-01-2016, 03:06 PM #7033
- 21-01-2016, 05:10 PM #7034
وعليكم السلام ورحمة الله وبركاته
يجب أن تنسخ مسار DataFolder نفس المسار الذي تضع فيه المؤشرات والإكسبرتات وليس مسار تنصيب الميتاتريدر
راجع شرح الموضوع مره أخرى
https://forum.arabictrader.com/t200487.html
- 21-01-2016, 06:48 PM #7035
السلام عليكم استاذى الكريم
تم مراجعة الموضوع اكثر من مره
كما هو مكتوب فى موضوع الرابط
يمكن الحصول على مسار Data Folder من الميتاتريدر إختر
File -------------> Open Data Folder
ثم إنسخ العنوان بشكل كامل
مثال
C:\Users\osama\AppData\Roaming\MetaQuotes\Terminal \C643B6860DDF9254620CA7F24C594834
بدون أي إضافة أخرى أو تعديل
.........................................
انا بس عايز اعرف المسار يكون كده
C:\Program Files\MetaTrader NordFX\MQL4
لو خطا ارجو وضع مسار الصحيح
ولك كل الشكر والتقدير
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM