How to know opening cost and PIP value before open a position?

 
//+------------------------------------------------------------------+
//|                                                       pc1.00.mq5 |
//|                                  Copyright 2019, Fabio Fredduzzi |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Fabio Fredduzzi"
#property link      "https://www.mql5.com"
#property version   "1.00"




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   long spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD); 
   double tick_value = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE); 
   Print("Symbol: " + ChartSymbol());  
   Print("Tick: " + string(tick_value));
   Print("Spread: "+string(spread));
   Print("Opening cost: " + string(spread * tick_value));
   Print("--------------------------------------------\n\n");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+

In firsth I want to apologise for the title of this topic, I don't know where to start. Well, in the market watch are listed the chosen assets and clicing on right mouse booton I can choose "Specification". I  tryed to read manual, and I am confused more then before. 

Simply before open a position I would like to know the cost in spread of the operation and the PIP value to calc stop loss and take profit, so I can set the correct lot size.

I wrote these simple few line... so, just as starting point.

Is there a way to get the desired infos in a easy way? Is it possible to correct this script or is it completly wrong way? 

Thanks for your attention,

Fabio

Basic Principles - Trading Operations - MetaTrader 5 Help
Basic Principles - Trading Operations - MetaTrader 5 Help
  • www.metatrader5.com
is an instruction given to a broker to buy or sell a financial instrument. There are two main types of orders: Market and Pending. In addition, there are special Take Profit and Stop Loss levels. is the commercial exchange (buying or selling) of a financial security. Buying is executed at the demand price (Ask), and Sell is performed at the...
 
Correct , but with one adjustment , the tick value is for one lot ,so the cost is tick value *  your lot 
 
  1. You buy at the Ask and sell at the Bid. So for buy orders you pay the spread on open. For sell orders you pay the spread on close.

    So there is no cost on a sell open.

  2. Never risk more than a small percentage of your account, certainly less than 2% per trade, 6% total to the account. Risk depends on your initial stop loss, lot size, and the value of the pair. It does not depend on margin and leverage.
    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.10.10
                Is there an universal solution for Tick value? - Currency Pairs - General - MQL5 programming forum 2018.02.11
                Lot value calculation off by a factor of 100 - MQL5 programming forum 2019.07.19
    4. You must normalize lots properly and check against min and max.
    5. You must also check FreeMargin to avoid stop out

    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.

 
Lorentzos Roussos:
Correct , but with one adjustment , the tick value is for one lot ,so the cost is tick value *  your lot 
Thanks Lorentzos, it works.
 
William Roeder:
  1. You buy at the Ask and sell at the Bid. So for buy orders you pay the spread on open. For sell orders you pay the spread on close.

    So there is no cost on a sell open.

This is an argument that I need to explore better, Thank you william.