MQL4 - Get Price Difference between Position and current price

MQL4 Uzmanlar Komut dosyaları

İş tamamlandı

Tamamlanma süresi: 10 saat

Şartname

MQL4 - Get Price Difference between Position and current price

 

Basically I want the following code

 

If i got 0 position, bool validGap = 0;

Then it open e.g UJ long at 99.00

 Now i got 1 order

UJ long at 99.00

My setting is gap 25 Points

if UJ goes to 99.25, i want to open 1 more position (add to winner)

or if UJ goes to 98.75 , I want to open 1 more position ( add to loser )

 

Take note the amount of digits or what symbol I playing need to be dynamic, no hardcoding.


My current code is something like this, however the EA keep open position despite there is no  25 * one Pip gap

 

Consider my gapTrade is value 25 

 

 double SL,TP,onePip;
 int Ticket;

onePip = 0.00;

if (MarketInfo(OrderSymbol(), MODE_POINT) == 0.00001) onePip = 0.0001;
else if (MarketInfo(OrderSymbol(), MODE_POINT) == 0.001) onePip = 0.01;
else onePip = MarketInfo(OrderSymbol(), MODE_POINT);

/***********************************/      
    
   //check if price match
   
   double currentPrice;
   currentPrice = MarketInfo(Symbol(),MODE_BID);
  
 bool validGap = false; // Initial - Not Okay.
 
  
   double minValue,maxValue,priceDiff;
   priceDiff = 0.00;
   minValue = 9999.0;
   
   for (int ii=OrdersTotal()-1 ; ii>=0 ; ii--)
   {
      if (!OrderSelect(ii,SELECT_BY_POS)) continue;
      if (OrderSymbol() == Symbol())
               if (OrderOpenPrice()  > maxValue)
               {
               maxValue = OrderOpenPrice();
               }
               if (OrderOpenPrice()  < minValue)
               {
               minValue = OrderOpenPrice();
               }
    }
   

  if(direction=="SELL")
  {
  priceDiff = currentPrice - maxValue;

  if( priceDiff > onePip*gapTrade)
  {
  validGap = true;
  }
  }
  
  if(direction=="BUY")
  {
  priceDiff =  minValue - currentPrice;
  //We use max value 
  if( priceDiff > onePip*gapTrade)
  {
  validGap = true;
  }
  }

  //Check if best trade in a buy is in profit
  /* ADD NEW POSITION TO A WINNING 1 */
  
  if(direction=="BUY")
  {
  priceDiff = currentPrice - maxValue;
  if( priceDiff > onePip*gapTrade)
  {
  validGap = true;
  }
  }

  if(direction=="SELL")
  {
  priceDiff = minValue - currentPrice;
  if( priceDiff > onePip*gapTrade)
  {
  validGap = true;
  }
  }

 

  

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(82)
Projeler
150
29%
Arabuluculuk
9
44% / 11%
Süresi dolmuş
46
31%
Serbest
2
Geliştirici 2
Derecelendirme
(1235)
Projeler
2820
80%
Arabuluculuk
156
22% / 43%
Süresi dolmuş
487
17%
Serbest
3
Geliştirici 3
Derecelendirme
(20)
Projeler
46
54%
Arabuluculuk
3
67% / 0%
Süresi dolmuş
14
30%
Serbest
4
Geliştirici 4
Derecelendirme
(339)
Projeler
809
73%
Arabuluculuk
30
33% / 37%
Süresi dolmuş
194
24%
Serbest
5
Geliştirici 5
Derecelendirme
(64)
Projeler
144
46%
Arabuluculuk
20
40% / 20%
Süresi dolmuş
32
22%
Serbest
6
Geliştirici 6
Derecelendirme
(851)
Projeler
1458
72%
Arabuluculuk
122
29% / 48%
Süresi dolmuş
356
24%
Serbest
Yayınlandı: 3 makale

Proje bilgisi

Bütçe
10 - 20 USD
Son teslim tarihi
from 1 to 2 gün