عرض مشاركة واحدة
قديم 22-11-2015, 03:19 AM   المشاركة رقم: 1
الكاتب
babouche007
عضو جديد

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

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

المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي مشكلة في برمجة (دخول بعقدين) :(

السلام عليكم إخواني

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

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

و شكرا

كود:
//+------------------------------------------------------------------+
//|                                                       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);
  }



عرض البوم صور babouche007  
رد مع اقتباس


  #1  
قديم 22-11-2015, 03:19 AM
babouche007 babouche007 غير متواجد حالياً
عضو جديد
افتراضي مشكلة في برمجة (دخول بعقدين) :(

السلام عليكم إخواني

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

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

و شكرا

كود:
//+------------------------------------------------------------------+
//|                                                       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);
  }




رد مع اقتباس