النتائج 2,881 إلى 2,895 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 03-10-2012, 03:37 AM #2881
- 03-10-2012, 05:01 AM #2882
رد:موضوع مخصص للأسئلة البرمجية
بارك لله فيك اخي اسامة ولكن عندي مشكلة بسيطة في الاكسبيرت عندما يتحقق شرط الشراء يقوم بي فتح صفقات بيع وشراء ولايتوقف واريد استفسار عن كيفية التحم بي اعدادت المؤشر من الخارج وشكرن لك اخي اسامة
كود PHP://| DD_RABAhhh.mq4 |
//| Copyright 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int K_Period=5;
extern int D_Period=3;
extern int Slowing=3;
extern int StopLoss=6;
extern int TakeProfit=10;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if (iStochastic(NULL,PERIOD_M5,5,3,3,0,0,0,1)<20 && iStochastic("EURUSD",PERIOD_M5,5,3,3,0,0,0,2)>20 && OrdersTotal()==0)
double SL,TP;
{
if(StopLoss >0){SL=Ask-StopLoss *Point;}else {SL=0;}
if(TakeProfit >0){TP=Ask+TakeProfit *Point;}else {TP=0;}
}
OrderSend(Symbol(),OP_BUY,0.01,Ask,30,SL,TP,"",15000,0,Green);
if (iStochastic(NULL,PERIOD_M5,5,3,3,0,0,0,1)>80 && iStochastic("EURUSD",PERIOD_M5,5,3,3,0,0,0,2)<80 && OrdersTotal()==0)
{
if(StopLoss >0){SL=Bid+StopLoss *Point;}else {SL=0;}
if(TakeProfit >0){TP=Bid-TakeProfit *Point;}else{TP=0;}
}
OrderSend(Symbol(),OP_SELL,0.01,Bid,30,SL,TP,"",15000,0,Red);
آخر تعديل بواسطة ayoob700 ، 03-10-2012 الساعة 05:04 AM
- 03-10-2012, 12:04 PM #2883
- 03-10-2012, 05:51 PM #2884
أخي مبدع تفضل الدالة لشرط كل 20 دقيقة
void OncePer_20_Minutes()
{
int datetime800 = TimeLocal();
if (ExpectedTime1 == 0 || datetime800 > ExpectedTime1 + 60)
{
ExpectedTime1 = datetime800 + 60 * 20; // reset paused time
}
if (datetime800 >= ExpectedTime1 && datetime800 < ExpectedTime1 + 60)
{
ExpectedTime1 = datetime800 + 60 * 20;
}
}
- 03-10-2012, 05:52 PM #2885
حتستدعي الدالة بالأمر
OncePer_20_Minutes();
تحطه في قسم ستارت
- 03-10-2012, 05:53 PM #2886
حتكتب المتغير ات في بداية الأكسبيرت
int ExpectedTime1 = 0;
- 03-10-2012, 05:56 PM #2887
ومرفق الكود بالكامل لتوقيت 20 دقيقة
==========================
// exported variables
#include <stdlib.mqh>
#include <WinUser32.mqh>
// local variables
double PipValue=1; // this variable is here to support 5-digit brokers
bool Terminated = false;
string LF = "\n"; // use this in custom or utility blocks where you need line feeds
int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks
int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names
int current = 0;
int ExpectedTime1 = 0;
int init()
{
NDigits = Digits;
if (false) ObjectsDeleteAll(); // clear the chart
Comment(""); // clear the chart
}
// Expert start
int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}
OnEveryTick2();
}
void OnEveryTick2()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;
OncePer_20_Minutes();
}
void OncePer_20_Minutes()
{
int datetime800 = TimeLocal();
if (ExpectedTime1 == 0 || datetime800 > ExpectedTime1 + 60)
{
ExpectedTime1 = datetime800 + 60 * 20; // reset paused time
}
if (datetime800 >= ExpectedTime1 && datetime800 < ExpectedTime1 + 60)
{
ExpectedTime1 = datetime800 + 60 * 20;
}
}
int deinit()
{
if (false) ObjectsDeleteAll();
}
- 03-10-2012, 09:01 PM #2888
- 03-10-2012, 09:44 PM #2889
نعم سوف تستدعيها بهذا الشكل تفضل هذه الداله بعد تعديلها
كود PHP:double lastorderPassedtime(){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
datetime it=OrderOpenTime();
double tn=(TimeCurrent()-(it))/60;
return(tn);
}
}
}
- 03-10-2012, 11:36 PM #2890
الله يفتح عليك اخ اسامه
عندي الاكسبيرت يغلق جميع الصفقات سواء رابحه اوخاسره في نهايه الاسبوع لكن ما اريده الان هو ان كانت الصفقه رابحه لايقوم بغلقها وانما تظل مفتوحه اما الصفقات الخاسره فيقفلها نهايه الاسبوع...كيف سيكون الامر؟
- 04-10-2012, 12:54 AM #2891
إستخدامك للأقواس بشكل خاطئ
الداله الشرطيه تكتب كالآتي
كود PHP:if(condition)
{
////////
/////////
//////////do any thing
}
راجع الكود الذي كتبته أنت سوف تجد أنك لم تضع أوامر OrderSend بداخل الأقواس
- 04-10-2012, 01:17 AM #2892
الله يفتح عليك اخ اسامه
عندي الاكسبيرت يغلق جميع الصفقات سواء رابحه اوخاسره في نهايه الاسبوع لكن ما اريده الان هو ان كانت الصفقه رابحه لايقوم بغلقها وانما تظل مفتوحه اما الصفقات الخاسره فيقفلها نهايه الاسبوع...كيف سيكون الامر؟
- 04-10-2012, 01:56 AM #2893
- 04-10-2012, 08:58 PM #2894
- 04-10-2012, 09:01 PM #2895
في دالة إغلاق الصفقات سوف تضع شرط إذا كان الربح أقل من 0 أي الصفقه خاسره تغلق الصفقات فقط
مثال
كود PHP:void CloseLossOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()&&OrderProfit()<0)
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3);
}
}
}
}
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM