النتائج 5,011 إلى 5,025 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 29-03-2014, 02:39 PM #5011
- 29-03-2014, 02:48 PM #5012
تفضل الكود للشراء وعدل للبيع
كود PHP:double profitvc(){double c;for(int i=0;i<OrdersTotal();i++){if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo && OrderType()==OP_BUY){c=c+OrderProfit();} }return(c);}
if(profitvc()>20) // CloseBuy();
- 29-03-2014, 03:47 PM #5013
- 29-03-2014, 03:48 PM #5014
السلام عليكم اعضاء ومشرفين ومبرمجين هذا المنتدى الكريم
اولا احب ان اشكر كل من ساهم في هذا المنتدى بوقته وجهده
فبفضل هذا المنتدى بدأت اتعلم لغة البرمجة والحمد لله فشكرا جزيلا لكم جميعا
وقمت بعمل اكسبيرت لتقاطع اثنين موفينج افرج ولكني لا اعرف كيف اضيف خاصية
الاغلاق عند ظهور اشارة عكسية الرجاء مساعدتي في ذلك بارك الله فيكم جميعا.
//اعدادات الموفينج السريع
extern string Setting_1 = "Fast Moving Average Setting"; // Fast Moving Average Setting
extern int FastMA_Period = 9;
extern int FastMA_Shift = 0;
extern int FastMA_Method = 1;
extern int FastMA_AppliedPrice = 0;
//اعدادات الموفينج البيطئ
extern string Setting_2 = "Slow Moving Average Setting"; // Slow Moving Average Setting
extern int SlowMA_Period = 30;
extern int SlowMA_Shift = 0;
extern int SlowMA_Method = 1;
extern int SlowMA_AppliedPrice = 0;
//اخذ الربح ووقف الخسارة وحجم العقد
extern string Setting_3 = "EA Management";
extern int TakeProfit = 4;
extern int Stoploss = 60;
extern double Lot = 0.01;
extern int MagicNumber = 12345; // رقم الماجيك للاكسبيرت
double T; //متغير قيمة النقطة
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Ticksize = MarketInfo (Symbol(),MODE_TICKSIZE); //كود حساب قيمة النقطة
if(Ticksize == 0.00001 || 0.001)
T = Ticksize*10;
else
T = Ticksize;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double FastMA_1 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 1); // قيمة الموفينج السريع للشمعة رقم 1
double FastMA_2 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 2); // قيمة الموفينج السريع للشمعة رقم 2
double SlowMA_1 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 1); // قيمة الموفينج البطيئ للشمعة رقم 1
double SlowMA_2 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 2); // قيمة الموفينج البطيئ للشمعة رقم 2
if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2) //شروط الشراء
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T),"Abukareem",MagicN umber,0,Blue); // امر شراء
if(FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2) // شروط البيع
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss *T),Bid-(TakeProfit*T),"Abukareem",MagicNumber,0,Red); // امر بيع
}
//+------------------------------------------------------------------+
- 29-03-2014, 04:09 PM #5015
- 29-03-2014, 08:46 PM #5016السلام عليكم ورحمة الله وبركاته
تحية طيبة أساتذتي الكرام
محاولات يائسة لاختصار دوال اكسبيرت كبير الحجم
نفترض لدينا 200 كائن عبارة عن خطوط أفقية: 100 خط فوق السعر باسم B1 ; B2 .... B100 و 100 خط أسفل السعر باسم S1; S2 .... S100
شرط الدخول إفتتاح الشمعة1 أسفل الخط وإغلاق الشمعة1 فوق الخط = شراء والعكس بالنسبة للبيع
الاكسبيرت سليم 100% ويفتح الصفقات لكن عند العمل على سلة العملات يحصل تهنج للمنصة وثقل للكمبيوتر... وأول حل قمت به هو تخفيض كمية هيستوري
لكن الحل الأمثل هو أن يتم اختصار الشروط الكثيرة... وحتى أيضا أتمكن من عمل التعديلات بسهولة مع سرعة المعالجة بالكمبيوتر ...
الدالة الخاصة بصفقة البيع (واختصرت فقط على 20 خط فما بالكم بـ 200 خط !!!!) كالتالي:
كود PHP:void TechnicalAnalysis1()
{
double LineB1=ObjectGet("B1",OBJPROP_PRICE1);
double LineS1=ObjectGet("S1",OBJPROP_PRICE1);
double LineB2=ObjectGet("B2",OBJPROP_PRICE1);
double LineS2=ObjectGet("S2",OBJPROP_PRICE1);
double LineB3=ObjectGet("B3",OBJPROP_PRICE1);
double LineS3=ObjectGet("S3",OBJPROP_PRICE1);
double LineB4=ObjectGet("B4",OBJPROP_PRICE1);
double LineS4=ObjectGet("S4",OBJPROP_PRICE1);
double LineB5=ObjectGet("B5",OBJPROP_PRICE1);
double LineS5=ObjectGet("S5",OBJPROP_PRICE1);
double LineB6=ObjectGet("B6",OBJPROP_PRICE1);
double LineS6=ObjectGet("S6",OBJPROP_PRICE1);
double LineB7=ObjectGet("B7",OBJPROP_PRICE1);
double LineS7=ObjectGet("S7",OBJPROP_PRICE1);
double LineB8=ObjectGet("B8",OBJPROP_PRICE1);
double LineS8=ObjectGet("S8",OBJPROP_PRICE1);
double LineB9=ObjectGet("B9",OBJPROP_PRICE1);
double LineS9=ObjectGet("S9",OBJPROP_PRICE1);
double LineB10=ObjectGet("B10",OBJPROP_PRICE1);
double LineS10=ObjectGet("S10",OBJPROP_PRICE1);
double LineB11=ObjectGet("B11",OBJPROP_PRICE1);
double LineS11=ObjectGet("S11",OBJPROP_PRICE1);
double LineB12=ObjectGet("B12",OBJPROP_PRICE1);
double LineS12=ObjectGet("S12",OBJPROP_PRICE1);
double LineB13=ObjectGet("B13",OBJPROP_PRICE1);
double LineS13=ObjectGet("S13",OBJPROP_PRICE1);
double LineB14=ObjectGet("B14",OBJPROP_PRICE1);
double LineS14=ObjectGet("S14",OBJPROP_PRICE1);
double LineB15=ObjectGet("B15",OBJPROP_PRICE1);
double LineS15=ObjectGet("S15",OBJPROP_PRICE1);
double LineB16=ObjectGet("B16",OBJPROP_PRICE1);
double LineS16=ObjectGet("S16",OBJPROP_PRICE1);
double LineB17=ObjectGet("B17",OBJPROP_PRICE1);
double LineS17=ObjectGet("S17",OBJPROP_PRICE1);
double LineB18=ObjectGet("B18",OBJPROP_PRICE1);
double LineS18=ObjectGet("S18",OBJPROP_PRICE1);
double LineB19=ObjectGet("B19",OBJPROP_PRICE1);
double LineS19=ObjectGet("S19",OBJPROP_PRICE1);
double LineB20=ObjectGet("B20",OBJPROP_PRICE1);
double LineS20=ObjectGet("S20",OBJPROP_PRICE1);
if((Open[1]>LineB1&&Close[1]<LineB1)
||(Open[1]>LineS1&&Close[1]<LineS1)
||(Open[1]>LineB2&&Close[1]<LineB2)
||(Open[1]>LineS2&&Close[1]<LineS2)
||(Open[1]>LineB3&&Close[1]<LineB3)
||(Open[1]>LineS3&&Close[1]<LineS3)
||(Open[1]>LineB4&&Close[1]<LineB4)
||(Open[1]>LineS4&&Close[1]<LineS4)
||(Open[1]>LineB5&&Close[1]<LineB5)
||(Open[1]>LineS5&&Close[1]<LineS5)
||(Open[1]>LineB6&&Close[1]<LineB6)
||(Open[1]>LineS6&&Close[1]<LineS6)
||(Open[1]>LineB7&&Close[1]<LineB7)
||(Open[1]>LineS7&&Close[1]<LineS7)
||(Open[1]>LineB8&&Close[1]<LineB8)
||(Open[1]>LineS8&&Close[1]<LineS8)
||(Open[1]>LineB9&&Close[1]<LineB9)
||(Open[1]>LineS9&&Close[1]<LineS9)
||(Open[1]>LineB10&&Close[1]<LineB10)
||(Open[1]>LineS10&&Close[1]<LineS10)
||(Open[1]>LineB11&&Close[1]<LineB11)
||(Open[1]>LineS11&&Close[1]<LineS11)
||(Open[1]>LineB12&&Close[1]<LineB12)
||(Open[1]>LineS12&&Close[1]<LineS12)
||(Open[1]>LineB13&&Close[1]<LineB13)
||(Open[1]>LineS13&&Close[1]<LineS13)
||(Open[1]>LineB14&&Close[1]<LineB14)
||(Open[1]>LineS14&&Close[1]<LineS14)
||(Open[1]>LineB15&&Close[1]<LineB15)
||(Open[1]>LineS15&&Close[1]<LineS15)
||(Open[1]>LineB16&&Close[1]<LineB16)
||(Open[1]>LineS16&&Close[1]<LineS16)
||(Open[1]>LineB17&&Close[1]<LineB17)
||(Open[1]>LineS17&&Close[1]<LineS17)
||(Open[1]>LineB18&&Close[1]<LineB18)
||(Open[1]>LineS18&&Close[1]<LineS18)
||(Open[1]>LineB19&&Close[1]<LineB19)
||(Open[1]>LineS19&&Close[1]<LineS19)
||(Open[1]>LineB20&&Close[1]<LineB20)
||(Open[1]>LineS20&&Close[1]<LineS20))
{
LimitOpenOrdersB();
}
}
كود PHP:void TechnicalAnalysis1()
{
for (int i=1; i>=20; i++)
{
double LineB=ObjectGet("Bi",OBJPROP_PRICE1);
double LineS=ObjectGet("Si",OBJPROP_PRICE1);
}
if((Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
{
LimitOpenOrdersB();
}
}
كود PHP:void TechnicalAnalysis1()
{
for (int i=1; i>=20; i++)
{
double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
}
if((Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
{
LimitOpenOrdersB();
}
}
كود PHP:void TechnicalAnalysis1()
{
for (int i=1; i>=20; i++)
{
double LineB=ObjectGet("B"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
}
if((Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
{
LimitOpenOrdersB();
}
}
آخر تعديل بواسطة kira-h ، 29-03-2014 الساعة 09:10 PM
- 29-03-2014, 10:56 PM #5017
وعليكم السلام ورحمة الله وبركاته
يمكنك عمل دالة تقوم بإغلاق الصفقات المفتوحه
مثال
كود PHP:void CloseOrders(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
مثل
كود PHP:if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2)
{ //شروط الشراء
CloseOrders(OP_SELL);
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T),"Abukareem",MagicNumber,0,Blue); // امر شراء
}
if(FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2)
{ // شروط البيع
CloseOrders(OP_BUY);
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss*T),Bid-(TakeProfit*T),"Abukareem",MagicNumber,0,Red); // امر بيع
}
- 30-03-2014, 01:12 AM #5018
بارك الله فيك مستر دولار وجعله الله في ميزان حسناتك
وغفر الله لك ولوالديك وجميع اهلك
- 30-03-2014, 12:19 PM #5019
السلام عليكم اعضاء ومشرفين ومبرمجين هذا المنتدى الجميل
في هذا الاكسبيرت اريد ان يكون التيك بروفت نقطة واحدة وذلك في جميع حالات تغير الاسبريد سواء بالزيادة اوالنقصان
فقمت بعمل متغير وسميتة S واضفتة للتيك بروفت في معادلة الشراء والبيع
فهل ما قمت به صح ام خطاء .بارك الله فيكم جميعا وتقبل منا ومنكم صالح الاعمالكود PHP://+------------------------------------------------------------------+
//| Ahmed 1.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
extern string Setting_1 = "Fast Moving Average Setting";
extern int FastMA_Period = 9;
extern int FastMA_Shift = 0;
extern int FastMA_Method = 1;
extern int FastMA_AppliedPrice = 0;
extern string Setting_2 = "Slow Moving Average Setting";
extern int SlowMA_Period = 30;
extern int SlowMA_Shift = 0;
extern int SlowMA_Method = 1;
extern int SlowMA_AppliedPrice = 0;
extern string Setting_3 = "EA Management";
extern int TakeProfit = 1;
extern int Stoploss = 10;
extern double Lot = 0.01;
extern int MagicNumber = 25478;
double T;
double S;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//----Ticksize
double Ticksize = MarketInfo (Symbol(),MODE_TICKSIZE);
if(Ticksize == 0.00001 || 0.001)
T = Ticksize*10;
else
T = Ticksize;
double Spreedsize = MarketInfo (Symbol(),MODE_SPREAD);
if(Spreedsize == 0.00001 || 0.001)
S = Spreedsize*10;
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
double FastMA_1 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 1);
double FastMA_2 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 2);
double SlowMA_1 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 1);
double SlowMA_2 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 2);
if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2)
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Blue);
if(FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2)
if(OrdersTotal() == 0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss*T),Bid-(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Red);
}
//+------------------------------------------------------------------+
- 31-03-2014, 01:19 AM #5020
- 01-04-2014, 01:54 AM #5021
وعليكم السلام ورحمة الله وبركاته
آخر طريقة هي الصحيحه
كود PHP:void TechnicalAnalysis1()
{
for (int i=1; i>=20; i++)
{
double LineB=ObjectGet("B"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
}
if((Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
{
LimitOpenOrdersB();
}
الصحيح المقارنه ستكون أقل من 20 وليس أكبر من 20
كود PHP:for (int i=1; i<=20; i++)
- 01-04-2014, 02:01 AM #5022
- 01-04-2014, 06:31 AM #5023
بارك الله فيك مستر دولار . واحسن الله جوابك
- 01-04-2014, 03:29 PM #5024
آخر تعديل بواسطة kira-h ، 01-04-2014 الساعة 03:42 PM
- 01-04-2014, 08:15 PM #5025
السلام عليكم أخواني الأفاضل الرجاء مساعدتي في تصحيح الخطأ الظاهر في هذا الكود وسأكون شاكر ومقدر وترى أنا جدا غشيم في البرمج فالبراحة عليا الله يحفظكم:
وهذا الكود:
int start()
{
if(AccountEquity()-AccountBalance()>=AccountBalance()*0.1) CloseAllTrades();
return(0);
}
// insert the following after int start() {} section of EA code.
void CloseAllTrades() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY)
OrderClose(OrderTicket(),OrderLots(),Bid,GetSlippage(),clCloseBuy);
if (OrderType()==OP_SELL)
OrderClose(OrderTicket(),OrderLots(),Ask,GetSlippage(),clCloseSell);
if (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT ||
OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
OrderDelete(OrderTicket());
}
}
}
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM