• 5:32 صباحاً




مشكلة في برمجة (دخول بعقدين) :(

إضافة رد
أدوات الموضوع
عضو جديد
تاريخ التسجيل: Jun 2015
المشاركات: 27
معدل تقييم المستوى: 0
babouche is on a distinguished road
22 - 11 - 2015, 07:47 AM
  #1
babouche غير متواجد حالياً  
Question مشكلة في برمجة (دخول بعقدين) :(
السلام عليكم إخواني

قمت ببرمجة اكسبيرت إغلاق الشمعة 1 > هاي الشمعة 2 ===> شراء
و دخول يكون بعقدين الأول 50 و التاني 150 نقطة
لكن المشكلة هي أن بعد ما يضرب الهدف الأول يدخل مرة أخرى بهدف ثاني

وأنا أريده أن يدخل بهدفين و إدا ضرب الهدف الأول لا يدخل مرة أخرى حتى يضرب الهذف الثاني

وأيضا إذا كان ممكن أريذه أن يشتغل من H9 إلى 19 بتوقيت المنصة ؟؟؟؟؟؟؟؟؟

و شكرا

كود:
//+------------------------------------------------------------------+
//|                                                       boujie.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 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP_1 = 50 ;
input int TP_2 = 150;
input int SL = 100 ;
input double lots = 0.1 ;
input int  Magic = 11111 ;
 
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()
  {
  
  
 
   
//---
   if(Close[1]>High[2]){
   if(orderscnt()==0)
   bool Buy1 = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP_1*t),"",Magic,0,Blue);
  if(orderscnt()<=1)
  bool Buy2 = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP_2*t),"",Magic,0,Blue);
   }
   if(Close[1]<Low[2]){
   if(orderscnt()==0)
  bool Sell1 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,Bid+(SL*t),Bid-(TP_1*t),"",Magic,0,Red);
  if(orderscnt()<=1)
  bool Sell2 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,Bid+(SL*t),Bid-(TP_2*t),"",Magic,0,Red);
   }
   
  }
//+------------------------------------------------------------------+
 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);
  }
رد مع اقتباس

الصورة الرمزية سمير محمد ارمان
مشرف سابق
الصورة الرمزية سمير محمد ارمان
 
تاريخ التسجيل: Nov 2009
المشاركات: 33,660
معدل تقييم المستوى: 48
سمير محمد ارمان will become famous soon enough
افتراضي رد: مشكلة في برمجة (دخول بعقدين) :(
2#
22 - 11 - 2015, 03:19 PM
اقتباس:
المشاركة الأصلية كتبت بواسطة babouche مشاهدة المشاركة
السلام عليكم إخواني

قمت ببرمجة اكسبيرت إغلاق الشمعة 1 > هاي الشمعة 2 ===> شراء
و دخول يكون بعقدين الأول 50 و التاني 150 نقطة
لكن المشكلة هي أن بعد ما يضرب الهدف الأول يدخل مرة أخرى بهدف ثاني

وأنا أريده أن يدخل بهدفين و إدا ضرب الهدف الأول لا يدخل مرة أخرى حتى يضرب الهذف الثاني

وأيضا إذا كان ممكن أريذه أن يشتغل من H9 إلى 19 بتوقيت المنصة ؟؟؟؟؟؟؟؟؟

و شكرا

كود:
//+------------------------------------------------------------------+
//|                                                       boujie.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 = "--------------Trend--------------";
extern int TMperiod = 200;
extern int TMshift = 0;
extern int TMmethod = 0;
extern int TMapplied = 0;
input string s2 = "---------Money Management--------------";
input int TP_1 = 50 ;
input int TP_2 = 150;
input int SL = 100 ;
input double lots = 0.1 ;
input int  Magic = 11111 ;
 
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()
  {
  
  
 
   
//---
   if(Close[1]>High[2]){
   if(orderscnt()==0)
   bool Buy1 = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP_1*t),"",Magic,0,Blue);
  if(orderscnt()<=1)
  bool Buy2 = OrderSend(NULL,OP_BUY,lots,Ask,3,Ask-(SL*t),Ask+(TP_2*t),"",Magic,0,Blue);
   }
   if(Close[1]<Low[2]){
   if(orderscnt()==0)
  bool Sell1 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,Bid+(SL*t),Bid-(TP_1*t),"",Magic,0,Red);
  if(orderscnt()<=1)
  bool Sell2 = OrderSend(Symbol(),OP_SELL,lots,Bid,30,Bid+(SL*t),Bid-(TP_2*t),"",Magic,0,Red);
   }
   
  }
//+------------------------------------------------------------------+
 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);
  }
السلام عليكم
تم عمل المطلوب
تحياتى
الملفات المرفقة
نوع الملف: mq4 babouche_sa1.mq4‏ (4.7 كيلوبايت, المشاهدات 6)
سمير محمد ارمان غير متواجد حالياً  
رد مع اقتباس
عضو جديد
 
تاريخ التسجيل: Jun 2015
المشاركات: 27
معدل تقييم المستوى: 0
babouche is on a distinguished road
افتراضي رد: مشكلة في برمجة (دخول بعقدين) :(
3#
22 - 11 - 2015, 09:40 PM
شكرا كل شيئ شغال
فقط سؤال أخير لكي أفهم جيدا
ماهو الفرق بين هذا الكود
كود:
if(Close[1]>High[2]){
   if(orderscnt()==0)
و هذا الكود
كود:
if(time&&Close[1]<Low[2]&&orderscnt()==0){
لأن الكود الأول يفتح معي الكتير من الصفقات دفعة واحدة
babouche غير متواجد حالياً  
رد مع اقتباس


إضافة رد



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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
أستاذ سمير عودة لطلب حل مشكلة إكسبرت أو برمجة إكسبرت جديد BRUFEN منتدى المؤشرات و الاكسبرتات 6 09 - 01 - 2014 02:03 PM
قطاع الانشاءات البحرية بماريدايف يفوز بعقدين بقيمة اجمالية 31 مليون دولار ahmedaolb منتدى البورصة المصرية 0 11 - 06 - 2012 12:37 PM
مشكلة كبيرة جداً وغريبة -- أرجو دخول الجميع للأهمية Marvey استراحة بورصات 24 19 - 08 - 2011 07:22 AM


05:32 AM