How to save Ask price and set lot size based on that?

 

Hello, I am trying to create an ea which sets its lot sizing based on the distance it's away or near to the price where the criteria was first met. However, in the strategy tester, it does not seem to take any trades at all. My code is below. 

int TicketBuy;
int Magix = 89424;
double SignalPrice;
int Buylot = 1;
bool BuyQuest = False;
int SignalCount = 0;

void OnTick(){

  double Open0 = Open[1];
  double Close0 = Close[1];
  
  if(Open0>Close0 && Close0-Open0 > 30){
    if (SignalCount = 0){
     SignalPrice = MarketInfo(Symbol(),Ask);
     SignalCount = 1;
     BuyQuest = True;
    }
   }

  if(Ask < (SignalPrice+20)){Buylot = 1;}
  if(Ask > (SignalPrice+20) && Ask < (SignalPrice+40)){Buylot = 0.8;}
  if(Ask > (SignalPrice+40) && Ask < (SignalPrice+60)){Buylot = 0.6;}
  if(Ask > (SignalPrice+60) && Ask < (SignalPrice+80)){Buylot = 0.4;}
  if(Ask > (SignalPrice+80) && Ask < (SignalPrice+100)){Buylot = 0.2;}
  if(Ask > (SignalPrice+100) ){Buylot = 0.1;}

  if (BuyQuest = True){TicketBuy = OrderSend(Symbol(),OP_BUY,Buylot,Ask,10,0,0,"DJISteve",Magix,0,clrAliceBlue);}


  if(OrderSelect(TicketBuy,SELECT_BY_TICKET,MODE_TRADES)==true){
  if((OrderProfit()>=10)){
  OrderClose(OrderTicket(),OrderLots(),Bid,10,clrRed);
  
  }
  }


}

Any help will be greatly appreciated.

Thank you.

 
Rahul Shaji Parmeshwar:

How to save Ask price and set lot size based on that?

Risk depends on your initial stop loss, lot size, and the value of the symbol. It does not depend on margin and leverage. No SL means you have infinite risk. Never risk more than a small percentage of your trading funds, certainly less than 2% per trade, 6% total.

  1. You place the stop where it needs to be — where the reason for the trade is no longer valid. E.g. trading a support bounce the stop goes below the support.

  2. AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the spread, and DeltaPerLot is usually around $10/PIP but it takes account of the exchange rates of the pair vs. your account currency.)

  3. Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
              MODE_TICKVALUE is not reliable on non-fx instruments with many brokers - MQL4 programming forum (2017)
              Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum (2018)
              Lot value calculation off by a factor of 100 - MQL5 programming forum (2019)

  4. You must normalize lots properly and check against min and max.

  5. You must also check FreeMargin to avoid stop out

  6. For MT5, see 'Money Fixed Risk' - MQL5 Code Base (2017)

Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5 or 0.1 Lots maximum.

 
William Roeder #:

Risk depends on your initial stop loss, lot size, and the value of the symbol. It does not depend on margin and leverage. No SL means you have infinite risk. Never risk more than a small percentage of your trading funds, certainly less than 2% per trade, 6% total.

  1. You place the stop where it needs to be — where the reason for the trade is no longer valid. E.g. trading a support bounce the stop goes below the support.

  2. AccountBalance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the spread, and DeltaPerLot is usually around $10/PIP but it takes account of the exchange rates of the pair vs. your account currency.)

  3. Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
              MODE_TICKVALUE is not reliable on non-fx instruments with many brokers - MQL4 programming forum (2017)
              Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum (2018)
              Lot value calculation off by a factor of 100 - MQL5 programming forum (2019)

  4. You must normalize lots properly and check against min and max.

  5. You must also check FreeMargin to avoid stop out

  6. For MT5, see 'Money Fixed Risk' - MQL5 Code Base (2017)

Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5 or 0.1 Lots maximum.

Thanks for your reply but it hasn't answered my question. I want to know how to save a single price from the time the criteria is met and then base the lot size off that value. 

 
I said risk depends on three things. Therefor, lot size also depends on those remaining and risk. You can't compute lot size with a single price. Your question is nonsense.
 
Rahul Shaji Parmeshwar:

Hello, I am trying to create an ea which sets its lot sizing based on the distance it's away or near to the price where the criteria was first met. However, in the strategy tester, it does not seem to take any trades at all. My code is below. 

Any help will be greatly appreciated.

Thank you.

open>close is bearish right? Then close - open will be negative … it will never be > 30 … unless you put MathAbs I don’t think it will ever agree this two conditions …. Also… what is 30 ? Should not be 30 * _Point ? Just asking … 
 
William Roeder #:
I said risk depends on three things. Therefor, lot size also depends on those remaining and risk. You can't compute lot size with a single price. Your question is nonsense.
It is not… if you reed his initial question was that his  EA won’t take trades… nothing to do with lotsize… then is asking how to hold a price and to some calculation at later times… 
Reason: