open orders with 10pip gap - page 3

 
    &&  OrderMagicNumber()  == 0           // my magic number

0 is the default magic number, so your condition will not exclude any trades opened manually

         Tip   =OrderType();                    // Type of selected order
         Price =OrderOpenPrice();               // Price of selected order
         SL    =OrderStopLoss();                // SL of selected order 
         TP    =OrderTakeProfit();               // TP of selected order
         Lot   =OrderLots();                     // Amount of lots

 Here you are storing the values from the last selected order. If you want to store the values from lastTicket, you will need to re=select it.

 

Why do you loop through orders to find the last order, you do nothing with the result?

Your 2 blocks of code are totally independent of each other 

 
GumRai:

0 is the default magic number, so your condition will not exclude any trades opened manually

 Here you are storing the values from the last selected order. If you want to store the values from lastTicket, you will need to re=select it.

 

Why do you loop through orders to find the last order, you do nothing with the result?

Your 2 blocks of code are totally independent of each other 

 




GumRai: thanks for your response, according to your pinpoints

OrderMagicNumber()  == 0   ------------here put it 0 because i was testing my code so i posted it without the value number, thanks for the recommendations and corrections

OrderMagicNumber()  == 1234

lastTicket i placed it at my ordersend  


lastTicket=OrderSend(Symbol(),OP_BUY,mylot(),Ask,0,0,0,"My Comment",magic,0,Green);

         if(lastTicket>0)
         {
            bool b=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(StopLoss*Point),Digits),NormalizeDouble(Ask-(TakeProfit*Point),Digits),0,Red);
           }



but i dont know if i actually get it right because all i want my ea to do is place multiple sell order type,so i want the ea to get highest open price in current chart symbol and open 10pip above it.and any trade bellow current last order reject.

so to get what i want i take it step by step. first i try to get last open order first, following the fomular WHRoeder gave me.

so my loop through order is not just to set 1 open trade but multiple open trade so that is why i want to get last open ticket high.please GumRai if am wrong in my orderselected put me through thanks for willing to help.



// Orders accounting 

{
     datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderTicket()       >   lastTicket
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
 
}

         Tip   =OrderType();                    // Type of selected order
         Price =OrderOpenPrice();               // Price of selected order
         SL    =OrderStopLoss();                // SL of selected order 
         TP    =OrderTakeProfit();               // TP of selected order
         Lot   =OrderLots();                     // Amount of lots
   
////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------- 5 ------------------------------------//
/*this is the poinnt where main formular or trading system EA-MA is based*/
//---------------------------------------------------------------------------
// Trading criteria
       
rsi1=iRSI(NULL,0,14,PRICE_CLOSE,1);
rsi2=iRSI(NULL,0,14,PRICE_CLOSE,0); 
     
 if(rsi2>70 && Ask > High[1] + (10*pips2dbl) )
  {
      Opn_S=true;
     } 
     else 
   if(rsi2>70 && Ask < High[1] + (10*pips2dbl)) 
      {
      Opn_S=false;
     }


lastTicket=OrderSend(Symbol(),OP_BUY,mylot(),Ask,0,0,0,"My Comment",magic,0,Green);

         if(lastTicket>0)
     {
      bool b=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(StopLoss*Point),Digits),
                         NormalizeDouble(Ask-(TakeProfit*Point),Digits),0,Red);
     }
 

Please try not to include long lines of code in your posts, it makes them difficult to read

   if(lastTicket>0)
     {
      bool b=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(StopLoss*Point),Digits),
                         NormalizeDouble(Ask-(TakeProfit*Point),Digits),0,Red);
     }

 There is nothing to stop you from using 2 lines as above

 
dan100:

WHRoeder this code is all in my calculation of order execution please i ask to help me to modify my errors and put me through. thank for your williness to help



dan100:

WHRoeder this code is all in my calculation of order execution please i ask to help me to modify my errors and put me through. thank for your williness to help






GumRai thanks for your corrections. but did i get above code right

 
dan100: please am still waiting for your assistance.WHRoeder   
You are going to be waiting a long time.
  1. I told you what you need to do, you didn't do it.
  2. I reminded you here that you still hadn't.
  3. And now you ask again but still haven't done it.
 
WHRoeder:
dan100: please am still waiting for your assistance.WHRoeder   
You are going to be waiting a long time.
  1. I told you what you need to do, you didn't do it.
  2. I reminded you here that you still hadn't.
  3. And now you ask again but still haven't done it.



WHRoeder  i didnt understand anymore this is the whole logic part of my ea and also where my code knowledge is for now.i dont know what again to present,afterall

that is why am here for help. but if you can permit me to send the whole ea code to you i will be well please,please WHRoeder please assist me i know you can.am waiting for your

approval and link to send the whole ea codes.


in addition formally before you gave me this formula......

  1. Find the open trade with the highest open price.
  2. If market hasn't reached the price + 10 pips, return
  3. open a new order.

 

i only test last price only with moving average crossing ASK price or BID price and i later discover that it sometime open orders bellow high price of current chart so that is what i want to correct

i have no code testing high it just MA and Ask and 10point so no code again i use in testing.

 
dan100:

GumRai thanks for your corrections. but did i get above code right

Firstly, it is not clear what you are trying to do

You say

"but i dont know if i actually get it right because all i want my ea to do is place multiple sell order type,so i want the ea to get highest open price in current chart symbol and open 10pip above it.and any trade bellow current last order reject.

so to get what i want i take it step by step. first i try to get last open order first, following the fomular WHRoeder gave me."

So what is it that you want to find?

The order with the highest open price?

or

The order that was opened most recently?

How can anyone help you when you are unable to describe what you want? 

 

     datetime lastTime  = 0;
    int      lastTicket = -1; // None open.
    for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
        OrderSelect(0, SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0           // my magic number
    &&  OrderSymbol()       == Symbol()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderTicket()       >   lastTicket
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }

 This code finds the last opened order, but it doesn't store the price anywhere

 

      
rsi1=iRSI(NULL,0,14,PRICE_CLOSE,1);
rsi2=iRSI(NULL,0,14,PRICE_CLOSE,0); 
     
 if(rsi2>70 && Ask > High[1] + (10*pips2dbl) )
  {
      Opn_S=true;
     } 
     else 
   if(rsi2>70 && Ask < High[1] + (10*pips2dbl)) 
      {
      Opn_S=false;
     }

 Here you give value to Opn_S, but you do nothing with it

 

   lastTicket=OrderSend(Symbol(),OP_BUY,mylot(),Ask,0,0,0,"My Comment",magic,0,Green);

 Here there are no conditions for opening an order and you over-write the value of lastTicket.

 

Your code has no logic, it is just 3 sections of code that are totally unrelated to each other  

 
GumRai thanks again for you indications and the summary. what i want to find is

highest open price in current chart symbol       and open 10pip above it if its buy/open 10pips bellow if its sell

please help me with it

 
dan100:
GumRai thanks again for you indications and the summary. what i want to find is

highest open price in current chart symbol

please help me with it

Why do you need help with this?

If you can write code to find the order with the latest (highest) OrderOpenTime, it should be a simple matter to find the order with the highest OrderOpenPrice.

It's simple substitution. 

 
GumRai:

Why do you need help with this?

If you can write code to find the order with the latest (highest) OrderOpenTime, it should be a simple matter to find the order with the highest OrderOpenPrice.

It's simple substitution. 



yea i do writes my codes and some i research but when i do not see desired result i look for solutions though i know am half way done yet errors

sometimes, no matter how simple or small they are can be hard to solve.please GumRai assist me i will be grateful.