اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   مشكلة في برمجة (دخول بعقدين) :( (https://fx-arabia.com/vb/showthread.php?t=51410)

babouche007 22-11-2015 03:19 AM

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

قمت ببرمجة اكسبيرت إغلاق الشمعة 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);
  }


اسلام العوامى 22-11-2015 05:05 PM

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

المشاركة الأصلية كتبت بواسطة babouche007 (المشاركة 838917)
السلام عليكم إخواني

قمت ببرمجة اكسبيرت إغلاق الشمعة 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 22-11-2015 09:25 PM

رد: مشكلة في برمجة (دخول بعقدين) :(
 
لقد قمت بإزالة الاسطر المعلمة بالاحمر فأصبح لدي مشكل آخر (أصبح يفتح معي الكتير من الصفقات )
لقد وجدت الحل
كود:

if(Close[1]>High[2]&&orderscnt()==0){
لكن ماهو الفرق بين الكود أعلاه و هذا الكود
كود:

if(Close[1]>High[2]){
  if(orderscnt()==0)



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

Powered by vBulletin® Copyright ©2000 - 2024

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