إعلانات المواقع والشركات

إعلانات منتجات وخدمات المتداول العربي

العودة   منتديات المتداول العربي > مـنـتـديــات الـمـتـداول الـعـربي > منتدى المؤشرات والاكسبيرتات والبرمجة Indicators & Experts Advisors


إضافة رد
 
أدوات الموضوع
قديم 21-03-2008, 08:19 PM   #31 (permalink)
معلومات العضو
عضو مميز ومشرف سابق
 
الصورة الرمزية وضاح عطار

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

المتحولات العامة Global Variable

تحتوي لغة الميتاتريدر على تقنية تسمى Global Variable

يستطيع المبرمج من خلالها تخزين واسترجاع المعلومات ومشاركتها بين جميع المؤشرات أو الاكسبيرتات أو حتى
المستخدم نفسه .

يمكنك يدويا أو برمجيا إنشاء متحول عام وإسناد قيمة ما له .

يمكنك تغيير هذه القيمة في أي وقت تريد يدويا أو برمجيا .

هذه المتحولات يمكن قراءة قيمها من أي مؤشر أو اكسبيرت آخر .
بهذه الطريقة يمكن تبادل المعلومات بين مجموعة من المؤشرات أو الاكسبيرتات .

يمكن مثلا برمجة مؤشر يقوم بحسابات معقدة ثم يعطي اشارة بيع أو شراء ويخزنها داخل متحول عام .

ثم هناك اكسبيرت يفحص هذا المتحول الذي يعرف اسمه ويرى ما هي الإشارة الأخيرة هل هي بيع أم شراء ليقوم بتنفيذ صفقة حقيقية .

هذا مثال بسيط لما يمكن عمله بواسطة هذه التقنية الرائعة .

العمل اليدوي على المتحولات العامة هو عن طريق برنامج الميتاتريدر نفسه .

من القائمة Tools اختر Global Variable أو اضغط F3 مباشرة .

ستظهر لك نافذة المتحولات العامة لتظهر لك المتحولات الحالية مع قيمها .

يمكنك إضافة متحول جديد أو حذف متحول موجود أو تغيير قيمته كما تريد .

العمل مع المتحولات العامة من خلال البرمجة :

تحتوي لغة MQL4 على كافة الوظائف المناسبة للعمل مع هذه المتحولات .

وهذه الوظائف هي :

كود PHP:
bool GlobalVariableCheckstring name


تقوم بفحص هل يوجد متحول عام له الاسم المحدد ..

تعيد هذه الوظيفة القيمة true في حال وجدت المتحول والقيمة false في حال لم يكن المتحول موجودا .

كود PHP:
bool GlobalVariableDelstring name


تقوم بحذف المتحول ذو الاسم المحدد وتعيد القيمة true في حال نجحت في عملية الحذف والقيمة false في حال لم تنجح لأي سبب من الأسباب .

كود PHP:
double GlobalVariableGetstring name


تقوم بقراءة قيمة المتحول ذو الاسم المحدد .

كود PHP:
datetime GlobalVariableSetstring namedouble value


تقوم بوضع قيمة رقمية في المتحول ذو الاسم المحدد وتعيد زمن آخر قراءة تمت على هذا المتحول .

أو تعيد القيمة صفر إذا كانت هذه أول مرة يتم تخزين قيمة في هذا المتحول .

كود PHP:
int GlobalVariablesDeleteAllstring prefix_name=NULL
تقوم بحذف كافة المتحولات العامة أو يمكنك حذف فقط المتحولات التي يبدأ اسمها ببادئة محددة .


تعيد هذه الوظيفة عدد المتحولات التي قامت بحذفها .

كود PHP:
int GlobalVariablesTotal( ) 
تقوم بإعادة عدد المتحولات العامة المتوفرة حاليا .


كود PHP:
string GlobalVariableNameint index


تقوم بإعادة اسم المتحول من خلال رقمه الذي يبدأ من الصفر حتى آخر متحول .

أمثلة :

كود PHP:
// check variable before use
  
if(!GlobalVariableCheck("g1"))
    
GlobalVariableSet("g1",1); 


يقوم هذا المثال بفحص هل يوجد متحول اسمه g1 .
في حال لم يجد هذا المتحول فإنه ينشئه ويضع فيه القيمة 1 .

كود PHP:
GlobalVariableDel("gvar_1"); 


يقوم هذا المثال بحذف المتحول ذو الاسم gvar_1 .

كود PHP:
double v1=GlobalVariableGet("g1"); 


يقوم هذا المثال بقراءة قيمة المتحول g1 وتخزينه في المتحول v1 .

كود PHP:
int    var_total=GlobalVariablesTotal();
  
string name;
  for(
int i=0;i<var_total;i++)
    {
     
name=GlobalVariableName(i);
     Print(
i,": Global variable name - ",name);
    } 


يقوم هذا المثال بقراءة وطباعة أسماء جميع المتحولات المتوفرة حاليا

فقط أسمائها وليس قيمها .

التوقيع

لا إله إلا الله محمد رسول الله

وضاح عطار غير متواجد حالياً   رد مع اقتباس
قديم 22-03-2008, 01:32 AM   #32 (permalink)
معلومات العضو
عضو نشيط
 
الصورة الرمزية wajdyss

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

جزاك الله كل خير

التوقيع



عدد زوار مشاركاتي


مؤشراتي My Indicators

اكسبيرتاتي My expert advisors
-
اللهم إن كان رزقي في السماء فأنزله ، و إن كان في الأرض فأخرجه ، و إن كان بعيداً فقربه ،
و إن كان قريبا فيسره ، و إن كان قليلاً فكثره ، و إن كان كثيراً فبارك لي فيه


wajdyss غير متواجد حالياً   رد مع اقتباس
قديم 23-03-2008, 08:05 PM   #33 (permalink)
معلومات العضو
المتداول العربي

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

جزاك الله خير

وبارك الله في عملك

شايب 2000 غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2008, 11:38 PM   #34 (permalink)
معلومات العضو
عضو نشيط
 
الصورة الرمزية wajdyss

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

طولت الغيبة يا مهندس وضاح

التوقيع



عدد زوار مشاركاتي


مؤشراتي My Indicators

اكسبيرتاتي My expert advisors
-
اللهم إن كان رزقي في السماء فأنزله ، و إن كان في الأرض فأخرجه ، و إن كان بعيداً فقربه ،
و إن كان قريبا فيسره ، و إن كان قليلاً فكثره ، و إن كان كثيراً فبارك لي فيه


wajdyss غير متواجد حالياً   رد مع اقتباس
قديم 03-05-2008, 04:56 AM   #35 (permalink)
معلومات العضو
مـتداول ذهـبي

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

اخى الحبيب وضاح
السلام عليكم

بدايه اشكرك على هذا المجهود الرائع فى الشرح ومحاوله لإفادة الأخوه والأخوات , وبكل تأكيد نترك جزائك عند المولى عز وجل فهو القادر على مكافأتك نظرا لما تبذله من جهد ثقيل فى الشرح وانا اعلم معنى شرح البرمجه

اخى الحبيب لقد قمت بتنفيذ الأوامر فى الأكسبيرت الأول الذى قمت بشرحه واللذى يعمل على وضع ارودرات معلقه على بعد معين عند اغلاق شمعه الديلى
ولقد قمت ببعض التعديلات عليه - وذلك من خلال تعلمى لشرحك الوافر ما شاء الله - لأجعله يضع أوردرات الشراء فوق الهاى لليوم السابق واوردرات البيع فوق اللو لليوم السابق ولكن ...

تظل الأوردرات المعلقه مفتوحه ويعجز الأكسبيرت عن تنفيذ اى ارودرات اخرى لحين اغلاق المعلق

وها هو الكود فأرجوا ان تقول لى ما هو الخطأ كى اتفاداه ولك جزيل الشكر

بارك الله فيك

الكود

كود PHP:
int start()
{
  if(
Hour()==&& Minute()<&& MyOrdersTotal(Magicnumber)>0)
  {
    
DeletePendingOrders(Magicnumber);
    
CloseOrders(Magicnumber);
  }
  if(
Hour()==&& Minute()>&& MyOrdersTotal(Magicnumber)==0)
  {
    
double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
    
double Daylow=iLow(Symbol(),PERIOD_D1,1);
    
double BuyPrice=Dayhigh+Step*Point;
    
double BuyTP=BuyPrice+Takeprofit*Point;
    
double BuySL=BuyPrice-Stoploss*Point;
 
    
double SellPrice=Daylow-Step*Point;
    
double SellTP=SellPrice-Takeprofit*Point;
    
double SellSL=SellPrice+Stoploss*Point;
 
    
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
    
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
 
 
  }
  return(
0);
}
int MyOrdersTotal(int Magic)
{
  
int c=0;
  
int total  OrdersTotal();
 
  for (
int cnt cnt total cnt++)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      
c++;
    }
  }
  return(
c);
}
 
int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
    }
  }
  return(
0);
}
int CloseOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      if (
OrderType()==OP_BUY)
      {
        
OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
 
      if (
OrderType()==OP_SELL)
      {
        
OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
    }
  }
  return(
0);


التوقيع



ــــــــــــــــــــــــــــــــــــــــــــ
اهم المشاركات فى موضوع تعلم الصيد

Amro غير متواجد حالياً   رد مع اقتباس
قديم 03-05-2008, 11:54 AM   #36 (permalink)
معلومات العضو
عضو نشيط
 
الصورة الرمزية wajdyss

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

اقتباس:
المشاركة الأصلية كتبت بواسطة Amro مشاهدة المشاركة
اخى الحبيب وضاح

السلام عليكم

بدايه اشكرك على هذا المجهود الرائع فى الشرح ومحاوله لإفادة الأخوه والأخوات , وبكل تأكيد نترك جزائك عند المولى عز وجل فهو القادر على مكافأتك نظرا لما تبذله من جهد ثقيل فى الشرح وانا اعلم معنى شرح البرمجه

اخى الحبيب لقد قمت بتنفيذ الأوامر فى الأكسبيرت الأول الذى قمت بشرحه واللذى يعمل على وضع ارودرات معلقه على بعد معين عند اغلاق شمعه الديلى
ولقد قمت ببعض التعديلات عليه - وذلك من خلال تعلمى لشرحك الوافر ما شاء الله - لأجعله يضع أوردرات الشراء فوق الهاى لليوم السابق واوردرات البيع فوق اللو لليوم السابق ولكن ...

تظل الأوردرات المعلقه مفتوحه ويعجز الأكسبيرت عن تنفيذ اى ارودرات اخرى لحين اغلاق المعلق

وها هو الكود فأرجوا ان تقول لى ما هو الخطأ كى اتفاداه ولك جزيل الشكر

بارك الله فيك

الكود

كود PHP:
int start()
{
  if(
Hour()==&& Minute()<&& MyOrdersTotal(Magicnumber)>0)
  {
    
DeletePendingOrders(Magicnumber);
    
CloseOrders(Magicnumber);
  }
  if(
Hour()==&& Minute()>&& MyOrdersTotal(Magicnumber)==0)
  {
    
double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
    
double Daylow=iLow(Symbol(),PERIOD_D1,1);
    
double BuyPrice=Dayhigh+Step*Point;
    
double BuyTP=BuyPrice+Takeprofit*Point;
    
double BuySL=BuyPrice-Stoploss*Point;
 
    
double SellPrice=Daylow-Step*Point;
    
double SellTP=SellPrice-Takeprofit*Point;
    
double SellSL=SellPrice+Stoploss*Point;
 
    
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
    
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
 
 
  }
  return(
0);
}
int MyOrdersTotal(int Magic)
{
  
int c=0;
  
int total  OrdersTotal();
 
  for (
int cnt cnt total cnt++)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      
c++;
    }
  }
  return(
c);
}
 
int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
    }
  }
  return(
0);
}
int CloseOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      if (
OrderType()==OP_BUY)
      {
        
OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
 
      if (
OrderType()==OP_SELL)
      {
        
OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
    }
  }
  return(
0);

اخي الكريم

بعد اذن المهندس وضاح

بعد نظرة سريعة على الكود ، هناك خطأ في دالة DeletePendingOrders

حيث يجب عليك تغيير
كود PHP:
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL)) 
الى

كود PHP:
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUYSTOP || OrderType()!=OP_SELLSTOP)) 

التوقيع



عدد زوار مشاركاتي


مؤشراتي My Indicators

اكسبيرتاتي My expert advisors
-
اللهم إن كان رزقي في السماء فأنزله ، و إن كان في الأرض فأخرجه ، و إن كان بعيداً فقربه ،
و إن كان قريبا فيسره ، و إن كان قليلاً فكثره ، و إن كان كثيراً فبارك لي فيه


wajdyss غير متواجد حالياً   رد مع اقتباس
قديم 03-05-2008, 03:46 PM   #37 (permalink)
معلومات العضو
عضو مميز ومشرف سابق
 
الصورة الرمزية وضاح عطار

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

أهلا بك أخي عمرو

استبدل الوظيفة التالية بمثيلتها في الكود عندك :

كود PHP:
int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
      
RefreshRates();
      
Sleep(100);
    }
  }
  return(
0);

وأخبرني بالنتيجة


أخي وجدي شكرا لك

لكنك لم تنتبه لإشارة لا يساوي != في الوظيفة

لذلك الوظيفة برمجيا صحيحة ولكن أحيانا لبطيء السيرفر والتنفيذ لا يتم تنفيذ الوظيفة بشكل صحيح .

التوقيع

لا إله إلا الله محمد رسول الله

وضاح عطار غير متواجد حالياً   رد مع اقتباس
قديم 03-05-2008, 04:28 PM   #38 (permalink)
معلومات العضو
مـتداول ذهـبي

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

اقتباس:
المشاركة الأصلية كتبت بواسطة wajdyss مشاهدة المشاركة
اخي الكريم



بعد اذن المهندس وضاح

بعد نظرة سريعة على الكود ، هناك خطأ في دالة DeletePendingOrders

حيث يجب عليك تغيير

كود PHP:
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL)) 
كود PHP:
[center][/center

الى

كود PHP:
[center][center]if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUYSTOP || OrderType()!=OP_SELLSTOP))
[/
center][/center

شكرا لك اخ وجدى على اهتمامك وزوقك وحبك لأخوتك
لكن مازال الموضوع كما هو


اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار مشاهدة المشاركة
أهلا بك أخي عمرو
اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار مشاهدة المشاركة


كود PHP:
[center]int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
      
RefreshRates();
      
Sleep(100);
    }
  }
  return(
0);
}
 
<
div align="center">استبدل الوظيفة التالية بمثيلتها في الكود عندك :
 
</
div
وأخبرني بالنتيجة


أخي وجدي شكرا لك

لكنك لم تنتبه لإشارة لا يساوي != في الوظيفة

لذلك الوظيفة برمجيا صحيحة ولكن أحيانا لبطيء السيرفر والتنفيذ لا يتم تنفيذ الوظيفة بشكل صحيح .
[/center]

كود PHP:
[center]{
  if(
Hour()==&& Minute()<&& MyOrdersTotal(Magicnumber)>0)
  {
    
DeletePendingOrders(Magicnumber);
    
CloseOrders(Magicnumber);
  }
  if(
Hour()==&& Minute()>&& MyOrdersTotal(Magicnumber)==0)
  {
    
double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
    
double Daylow=iLow(Symbol(),PERIOD_D1,1);
    
double BuyPrice=Dayhigh+Step*Point;
    
double BuyTP=BuyPrice+Takeprofit*Point;
    
double BuySL=BuyPrice-Stoploss*Point;
    
    
double SellPrice=Daylow-Step*Point;
    
double SellTP=SellPrice-Takeprofit*Point;
    
double SellSL=SellPrice+Stoploss*Point;
    
    
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
    
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
    
    
  }
  return(
0);
}
int MyOrdersTotal(int Magic)
{
  
int c=0;
  
int total  OrdersTotal();
  
  for (
int cnt cnt total cnt++)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      
c++;
    }
  }
  return(
c);
}

int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
      
RefreshRates();
      
Sleep(100);
    }
  }
  return(
0);
}  

int CloseOrders(int Magic)
{
  
int total  OrdersTotal()-1;
  
  for (
int cnt total cnt cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      if (
OrderType()==OP_BUY)
      {
        
OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
      
      if (
OrderType()==OP_SELL)
      {
        
OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
    }
  }
  return(
0);
}  <
div align="center"><font size="5"><font color="blue">الأخ الحبيب <font color="sienna">وضاح</font></font></font>
 
<
div align="center"><font size="5"><font color="blue">جزاك الله كل الخير على اهتمامك</font></font>
<
font size="5"><font color="blue">قمت بتغيير الكود ولكن <font color="sienna">الأمر كما هو</fontومرفق لك الكود مرة اخرى </font></font></div

<
div align="center"><div style="margin:20px; margin-top:5px">
    <
div class="smallfont" style="margin-bottom:2px">كود PHP:</div>
    <
div class="alt2" dir="ltr" style="
        margin: 0px;
        padding: 6px;
        border: 1px inset;
        width: 640px;
        height: 34px;
        text-align: left;
        overflow: auto"
>
        <
code style="white-space:nowrap">
            <!-- 
php buffer start --><code><span style="color: #000000">
<
span style="color: #0000BB">int&nbsp;start</span><span style="color: #007700">()&nbsp; </span><span style="color: #0000BB"></span>
</
span>
</
code><!-- php buffer end -->
        </
code>
    </
div>
</
div></div></div
[/center]

التوقيع



ــــــــــــــــــــــــــــــــــــــــــــ
اهم المشاركات فى موضوع تعلم الصيد

Amro غير متواجد حالياً   رد مع اقتباس
قديم 03-05-2008, 07:05 PM   #39 (permalink)
معلومات العضو
عضو مميز ومشرف سابق
 
الصورة الرمزية وضاح عطار

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

بعد التدقيق في الكود وجدت الخطأ

هذا هو الكود الصحيح

كود PHP:
//+------------------------------------------------------------------+
//|                                                Amro high low.mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern int Step=20;
extern int Takeprofit=50;
extern int Stoploss=50;
extern double Lots=1;  
int Magicnumber=234561;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
  return(
0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   return(
0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
  if(
Hour()==&& Minute()<&& MyOrdersTotal(Magicnumber)>0)
  {
    
DeletePendingOrders(Magicnumber);
    
CloseOrders(Magicnumber);
  }
  if(
Hour()==&& Minute()>&& MyOrdersTotal(Magicnumber)==0)
  {
    
double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
    
double Daylow=iLow(Symbol(),PERIOD_D1,1);
    
double BuyPrice=Dayhigh+Step*Point;
    
double BuyTP=BuyPrice+Takeprofit*Point;
    
double BuySL=BuyPrice-Stoploss*Point;
    
    
double SellPrice=Daylow-Step*Point;
    
double SellTP=SellPrice-Takeprofit*Point;
    
double SellSL=SellPrice+Stoploss*Point;
    
    
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
    
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
    
    
  }
  return(
0);
}
int MyOrdersTotal(int Magic)
{
  
int c=0;
  
int total  OrdersTotal();
  
  for (
int cnt cnt total cnt++)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      
c++;
    }
  }
  return(
c);
}

int DeletePendingOrders(int Magic)
{
  
int total  OrdersTotal()-1;
 
  for (
int cnt total cnt >= cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
    {
      
OrderDelete(OrderTicket());
    }
  }
  return(
0);
}  

int CloseOrders(int Magic)
{
  
int total  OrdersTotal()-1;
  
  for (
int cnt total cnt >= cnt--)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
    {
      if (
OrderType()==OP_BUY)
      {
        
OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
      
      if (
OrderType()==OP_SELL)
      {
        
OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
    }
  }
  return(
0);
}  

//+------------------------------------------------------------------+ 

التوقيع

لا إله إلا الله محمد رسول الله

وضاح عطار غير متواجد حالياً   رد مع اقتباس
قديم 04-05-2008, 01:11 AM   #40 (permalink)
معلومات العضو
مـتداول ذهـبي

إحصائية العضو
Thumbs up رد: دورة صناعة الاكسبيرتات

شكرا اخى وضاح وجزاك الله كل الخير

تمام الكود شغال

بإذن الله هعمل بعض التجارب عليه واوافيك بالأخبار لعل يكون فيه الخير الكثير للأخوه بأمر الله

بارك الله فيك

التوقيع



ــــــــــــــــــــــــــــــــــــــــــــ
اهم المشاركات فى موضوع تعلم الصيد

Amro غير متواجد حالياً   رد مع اقتباس
قديم 05-05-2008, 10:52 AM   #41 (permalink)
معلومات العضو
المتداول العربي
 
الصورة الرمزية الاصيل العربي

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

جزاك الله عنا كل خير اخوي وضاح

و احنا معاك

التوقيع

استغفر الله العظيم
استغفر الله العظيم
استغفر الله العظيم

الاصيل العربي غير متواجد حالياً   رد مع اقتباس
قديم 09-05-2008, 05:07 PM   #42 (permalink)
معلومات العضو
المتداول العربي
 
الصورة الرمزية علي موفق

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

شكرا

التوقيع

شكرا

علي موفق غير متواجد حالياً   رد مع اقتباس
قديم 25-05-2008, 06:01 PM   #43 (permalink)
معلومات العضو
عضو نشيط
 
الصورة الرمزية ABUSLIMAN06

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

جزاك الله خير
وبارك الله فيك
واصلح لك النية والذرية

ABUSLIMAN06 غير متواجد حالياً   رد مع اقتباس
قديم 26-05-2008, 12:22 AM   #44 (permalink)
معلومات العضو
عضو نشيط
 
الصورة الرمزية المحرر الصحفي

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات


بارك الله فيك اخي الكريم

شرح اكثر من رائع

المحرر الصحفي غير متواجد حالياً   رد مع اقتباس
قديم 26-05-2008, 09:08 PM   #45 (permalink)
معلومات العضو
عضو مميز ومشرف سابق
 
الصورة الرمزية وضاح عطار

إحصائية العضو
افتراضي رد: دورة صناعة الاكسبيرتات

فيما يلي بعض الوظائف الهامة التي أستخدمها بكثرة في الاكسبيرتات التي أصنعها

وأعتقد أنها سوف تنفعكم أيضا


هذه الوظائف سهلة الاستخدام ومفهومة جدا وكلها تعتمد على مدخل واحد هو الرقم السحري المميز للصفقات ...


الوظيفة الأولى :

MyRealOrdersTotal

تقوم بإعادة عدد الصفقات الحقيقية المفتوحة من قبل الاكسبيرت سواء كانت بيع أو شراء :

كود PHP:
int MyRealOrdersTotal(int Magic)
{
  
int c=0;
  
int total  OrdersTotal();

  for (
int cnt cnt total cnt++)
  {
    
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (
OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
    {
      
c++;
    }
  }
  return(
c);


التوقيع

لا إله إلا الله محمد رسول الله

وضاح عطار غير متواجد حالياً   رد مع اقتباس
 
إعلان

إعلانات نصية



جميع الحقوق محفوظة لموقع المتداول العربي
Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

جميع الأوقات بتوقيت GMT +3. الساعة الآن 03:47 AM.
إختيار التصميم:
سياسة التبليغ عن انتهاك حقوق الطبع والنشر والملكية بموقع المتداول العربي شركة المتداول العربي
جميع مايطرح في المنتدى لا يعبر بالضرورة عن رأي إدارة المنتدى، وإنما يعبر عن رأي كاتبه، لذلك تخلي إدارة المنتدى مسؤوليتها عما يطرح فيه من آراء وتوصيات