FX-Arabia

جديد المواضيع











الملاحظات

منتدى المؤشرات و الاكسبيرتات تعليم برمجة الاكسبيرت ، اكسبيرت مجانى ، برمجة مؤشرات ، مؤشر ، تصميم اكسبيرت مجانا ، اكسبيرتات جديدة ، مؤشرات جديدة ، كل ما يتعلق بالتحليل و الخاص بالمؤشرات الفنية او الرقمية ، Expert advisor ، mql ، mql4 ، دورة برمجة ، برمجة اكسبيرت ، اكسبيرت رابح ، اكسبيرت جيد ، ادارة حسابات ، تداول الى ، ميتاتريدر ، تحميل منصة ، منصة تداول ، برمجة مؤشر ، مكتبة مؤشرات ، مؤشر جديد ، مؤشرات جديدة ، مؤشر حصرى ، احدث مؤشر .


طريقة للحصول على معلومات من مؤشر :(

منتدى المؤشرات و الاكسبيرتات


إضافة رد
 
أدوات الموضوع
قديم 01-01-2016, 04:54 AM   المشاركة رقم: 1
الكاتب
babouche007
عضو جديد

البيانات
تاريخ التسجيل: Jun 2015
رقم العضوية: 25643
المشاركات: 19
بمعدل : 0.01 يوميا

الإتصالات
الحالة:
babouche007 غير متواجد حالياً
وسائل الإتصال:

المنتدى : منتدى المؤشرات و الاكسبيرتات
4 طريقة للحصول على معلومات من مؤشر :(

السلام عليكم إخواني
هل توجد طريقة للحصول على معلومات من جدول v1[] و v2[] للمؤشر خاص بي و إستخدامها في إكسبرت
لقد قمت بتصميم مؤشر يعتمذ على fractal و يخزن كل المعلومات داخل الجداول

v2[] ===> support
v1[] ===> Resistance

و إكسبيرت : إذا تم إختراق support ==> بيع
إذا تم إختراق resistance ==> شراء

لكن أريد إستخراج قيمة من الجدول v2[] تكون أصغر من آخر قيمة و لكن بترتيب (آخر قيمة تم لقبلها حتى الوصول لقيمة أصغر من القيمة الحالية) هذا في حالة البيع

مثال : الصورة السهم هي شمعة الدخول الخطوط الحمراء هي الأهذاف التي أريذ إستخراجها
نقره لعرض الصورة في صفحة مستقلة

المؤشر

كود:
//+------------------------------------------------------------------+
//|                                                hamza-fractal.mq4 |
//|                                      Copyright 2015, hamza Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, hamza Corp."
#property link      "https://www.mql5.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- buffers
double v1[];
double v2[];
double val1;
double val2;
int i;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+  
int init()
  {
//---- drawing settings
   SetIndexArrow(0, 119);
   SetIndexArrow(1, 119);
//----  
   SetIndexStyle(0, DRAW_ARROW, STYLE_DOT, 1);
   SetIndexDrawBegin(0, i-1);
   SetIndexBuffer(0, v1);
   SetIndexLabel(0,"Resistance");
//----    
   SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1);
   SetIndexDrawBegin(1,i-1);
   SetIndexBuffer(1, v2);
   SetIndexLabel(1,"Support");
//---- 
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  { 
   i = Bars;
   while(i >= 0)
     {   
       val1 = iFractals(NULL, 0, MODE_UPPER, i);
       //----
       if(val1 > 0) 
           v1[i] = High[i];
       
       val2 = iFractals(NULL, 0, MODE_LOWER, i);
       //----
       if(val2 > 0) 
           v2[i] = Low[i];
     
       i--;
     }   
   return(0);
  }
//+------------------------------------------------------------------+
الإكسبيرت
كود:
//+------------------------------------------------------------------+
//|                                                hamza-fractal.mq4 |
//|                                      Copyright 2015, hamza Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, hamza Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input string s1 = "---------Money Management--------------";
input int TP = 10 ;
input int SL = 10 ;
input double lots = 0.1 ;
input int  Magic = 532457 ;

bool bSupp_Resis = true;

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 SL_buy = Low[0]-0.0010;
  double SL_Sell  = High[0]+0.0010;
  
//---
  if ( fSupp_Resis(bSupp_Resis,"Achat") && orderscnt()<=0 )
  bool Buy1 = OrderSend(NULL,OP_BUY,lots,Ask,30,SL_buy,Ask+(TP*t),"",Magic,0,Blue);
 
  if ( fSupp_Resis(bSupp_Resis,"Vente") && orderscnt()<=0 )
  bool Sell1 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,SL_Sell,Bid-(TP*t),"",Magic,0,Red); 
  }
//+------------------------------------------------------------------+

bool  fSupp_Resis (bool bSupp_Resis , string sOperation )
 {
 double dSupport_1H = iCustom(Symbol(),PERIOD_H1,"teste_trend",0,Blue,1,0);
 bool bFiltreAutorise = false;

 
 if ( bSupp_Resis == false )
     bFiltreAutorise = True;
 //------------------------------------------------
 if ( sOperation == "Vente" && bSupp_Resis == true )
    {
     if (dSupport_1H > Bid && dSupport_1H < Low[1] )
        bFiltreAutorise = True;
     if (dSupport_1H < Bid)
        bFiltreAutorise = False;
    }    
 //------------------------------------------------   
 double dResistance_1H = iCustom(Symbol(),PERIOD_H1,"teste_trend",Red,0,1);
 
 if ( sOperation == "Achat" && bSupp_Resis == true )
    {
     if (dResistance_1H < Ask && dResistance_1H > High[1] )
        bFiltreAutorise = True;
     if (dResistance_1H > Ask)
        bFiltreAutorise = False;
    }    
 //------------------------------------------------ 
 return(bFiltreAutorise);
 }   
//=====================================================================
int orderscnt(){
 int cnt=0;
   for(int i =0;i<=OrdersTotal();i++){
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic){
         cnt++;
       }
     }
   }
    return(cnt);
  }
إن كان ممكن أريد حل أيضا هذه المشكلة في الإكسبيرت
declaration of 'bSupp_Resis' hides global declaration at line 17

و شكرا



الصور المرفقة
نوع الملف: jpg GBPJPYH1.jpg‏ (17.3 كيلوبايت, المشاهدات 0)
عرض البوم صور babouche007  
رد مع اقتباس


  #1  
قديم 01-01-2016, 04:54 AM
babouche007 babouche007 غير متواجد حالياً
عضو جديد
4 طريقة للحصول على معلومات من مؤشر :(

السلام عليكم إخواني
هل توجد طريقة للحصول على معلومات من جدول v1[] و v2[] للمؤشر خاص بي و إستخدامها في إكسبرت
لقد قمت بتصميم مؤشر يعتمذ على fractal و يخزن كل المعلومات داخل الجداول

v2[] ===> support
v1[] ===> Resistance

و إكسبيرت : إذا تم إختراق support ==> بيع
إذا تم إختراق resistance ==> شراء

لكن أريد إستخراج قيمة من الجدول v2[] تكون أصغر من آخر قيمة و لكن بترتيب (آخر قيمة تم لقبلها حتى الوصول لقيمة أصغر من القيمة الحالية) هذا في حالة البيع

مثال : الصورة السهم هي شمعة الدخول الخطوط الحمراء هي الأهذاف التي أريذ إستخراجها
نقره لعرض الصورة في صفحة مستقلة

المؤشر
كود:
//+------------------------------------------------------------------+
//|                                                hamza-fractal.mq4 |
//|                                      Copyright 2015, hamza Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, hamza Corp."
#property link      "https://www.mql5.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- buffers
double v1[];
double v2[];
double val1;
double val2;
int i;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+  
int init()
  {
//---- drawing settings
   SetIndexArrow(0, 119);
   SetIndexArrow(1, 119);
//----  
   SetIndexStyle(0, DRAW_ARROW, STYLE_DOT, 1);
   SetIndexDrawBegin(0, i-1);
   SetIndexBuffer(0, v1);
   SetIndexLabel(0,"Resistance");
//----    
   SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1);
   SetIndexDrawBegin(1,i-1);
   SetIndexBuffer(1, v2);
   SetIndexLabel(1,"Support");
//---- 
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  { 
   i = Bars;
   while(i >= 0)
     {   
       val1 = iFractals(NULL, 0, MODE_UPPER, i);
       //----
       if(val1 > 0) 
           v1[i] = High[i];
       
       val2 = iFractals(NULL, 0, MODE_LOWER, i);
       //----
       if(val2 > 0) 
           v2[i] = Low[i];
     
       i--;
     }   
   return(0);
  }
//+------------------------------------------------------------------+
الإكسبيرت
كود:
//+------------------------------------------------------------------+
//|                                                hamza-fractal.mq4 |
//|                                      Copyright 2015, hamza Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, hamza Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input string s1 = "---------Money Management--------------";
input int TP = 10 ;
input int SL = 10 ;
input double lots = 0.1 ;
input int  Magic = 532457 ;

bool bSupp_Resis = true;

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 SL_buy = Low[0]-0.0010;
  double SL_Sell  = High[0]+0.0010;
  
//---
  if ( fSupp_Resis(bSupp_Resis,"Achat") && orderscnt()<=0 )
  bool Buy1 = OrderSend(NULL,OP_BUY,lots,Ask,30,SL_buy,Ask+(TP*t),"",Magic,0,Blue);
 
  if ( fSupp_Resis(bSupp_Resis,"Vente") && orderscnt()<=0 )
  bool Sell1 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,SL_Sell,Bid-(TP*t),"",Magic,0,Red); 
  }
//+------------------------------------------------------------------+

bool  fSupp_Resis (bool bSupp_Resis , string sOperation )
 {
 double dSupport_1H = iCustom(Symbol(),PERIOD_H1,"teste_trend",0,Blue,1,0);
 bool bFiltreAutorise = false;

 
 if ( bSupp_Resis == false )
     bFiltreAutorise = True;
 //------------------------------------------------
 if ( sOperation == "Vente" && bSupp_Resis == true )
    {
     if (dSupport_1H > Bid && dSupport_1H < Low[1] )
        bFiltreAutorise = True;
     if (dSupport_1H < Bid)
        bFiltreAutorise = False;
    }    
 //------------------------------------------------   
 double dResistance_1H = iCustom(Symbol(),PERIOD_H1,"teste_trend",Red,0,1);
 
 if ( sOperation == "Achat" && bSupp_Resis == true )
    {
     if (dResistance_1H < Ask && dResistance_1H > High[1] )
        bFiltreAutorise = True;
     if (dResistance_1H > Ask)
        bFiltreAutorise = False;
    }    
 //------------------------------------------------ 
 return(bFiltreAutorise);
 }   
//=====================================================================
int orderscnt(){
 int cnt=0;
   for(int i =0;i<=OrdersTotal();i++){
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic){
         cnt++;
       }
     }
   }
    return(cnt);
  }
إن كان ممكن أريد حل أيضا هذه المشكلة في الإكسبيرت
declaration of 'bSupp_Resis' hides global declaration at line 17

و شكرا




الصور المرفقة
نوع الملف: jpg GBPJPYH1.jpg‏ (17.3 كيلوبايت, المشاهدات 0)
رد مع اقتباس

إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
للحصول, مؤشر, معلومات, طريقة


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 07:12 PM



جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com

تحذير المخاطرة

التجارة بالعملات الأجنبية تتضمن علي قدر كبير من المخاطر ومن الممكن ألا تكون مناسبة لجميع المضاربين, إستعمال الرافعة المالية في التجاره يزيد من إحتمالات الخطورة و التعرض للخساره, عليك التأكد من قدرتك العلمية و الشخصية على التداول.

تنبيه هام

موقع اف اكس ارابيا هو موقع تعليمي خالص يهدف الي توعية المستثمر العربي مبادئ الاستثمار و التداول الناجح ولا يتحصل علي اي اموال مقابل ذلك ولا يقوم بادارة محافظ مالية وان ادارة الموقع غير مسؤولة عن اي استغلال من قبل اي شخص لاسمها وتحذر من ذلك.

اتصل بنا

البريد الإلكتروني للدعم الفنى : support@fx-arabia.com
جميع الحقوق محفوظة اف اكس ارابيا – احدى مواقع Inwestopedia Sp. Z O.O. للاستشارات و التدريب – جمهورية بولندا الإتحادية.
Powered by vBulletin® Copyright ©2000 - 2024 , Designed by Fx-Arabia Team