Путаница в расчетах в пунктах и прибылях

 

Я хочу знать, если я 1 лот в USDJPY и хочу получить прибыль в размере 100 долларов, то какое расстояние мне придется преодолеть?

Если 1 лот неверен, то как я могу получить расчет лота, поскольку есть разница в расчете прибыли для разных символов.

Помогите, пожалуйста. Я знаю, что это очень идиотский вопрос, но все же хочу избежать путаницы.

Можете ли вы помочь мне написать функцию, которая сможет управлять ею автоматически?

У меня есть прибыль, которую нужно заработать = 100 долларов. И если я хочу получить только 10 пипсов в USDJPY или любой другой валюте, то какой расчет или информация о символах могут помочь мне решить это.

Я прочитал с форума. Но меня это сбивает.

Так что нужно знать простым способом.

 
jaffer wilson:

Я хочу знать, если я 1 лот в USDJPY и хочу получить прибыль в размере 100 долларов, то какое расстояние мне придется преодолеть?

Если 1 лот неверен, то как я могу получить расчет лота, поскольку есть разница в расчете прибыли для разных символов.

Помогите, пожалуйста. Я знаю, что это очень идиотский вопрос, но все же хочу избежать путаницы.

Можете ли вы помочь мне написать функцию, которая сможет управлять ею автоматически?

У меня есть прибыль, которую нужно заработать = 100 долларов. И если я хочу получить только 10 пипсов в USDJPY или любой другой валюте, то какой расчет или информация о символах могут помочь мне решить это.

Я прочитал с форума. Но меня это сбивает.

Так что нужно знать простым способом.

1 лот верен, но вы ищете не там.

у каждого символа есть стоимость пункта, которая пропорциональна лоту.

Какой терминал используете ? попробую найти код индикатора 

 
Volodymyr Zubov # :

1 лот верен, но вы ищете не там.

у каждого символа есть стоимость пункта, которая пропорциональна лоту.

Какой терминал используете ? попробую найти код индикатора 

Я использую МТ5.


 
jaffer wilson #:

Я использую МТ5.


//+------------------------------------------------------------------+
//|                                                InfoIndikator.mq4 |
//+------------------------------------------------------------------+
#property version   "2.00"
#property strict

#property indicator_chart_window

extern double  MarginLot = 0.01;
extern double  Risk = 1;
extern int     StopLoss = 50;
extern bool    VisualBalance = true;
extern bool    VisuaZeroLevel = true;
extern int     XDistance = 0;
extern int     YDistance = 0; 
extern color   SpreadColor = clrGoldenrod;
extern color   MarginColor = clrLightSeaGreen;
extern color   TickColor = clrSeaGreen;
extern color   RiskColor = clrMaroon;
extern color   SwopColor = clrBlack;
extern color   ZeroLevelColor = clrGreen;

string OBJ_NAME="SpreadIndikatorObj";
string OBJ_NAME1="MarginIndikatorObj";
string OBJ_NAME2="TickIndikatorObj";
string OBJ_NAME3="RiskIndikatorObj";
string OBJ_NAME4="SwopIndikatorObj";
//==============================
double Balance, Equity ;
string    txt,txt1;
string    txt2="";
string    txt3="";
color col = ForestGreen;
//==============================

int init()
{
   Info();
   return (0);
}
//==============================

int deinit()
{
   ObjectDelete(OBJ_NAME);
   ObjectDelete(OBJ_NAME1);
   ObjectDelete(OBJ_NAME2);
   ObjectDelete(OBJ_NAME3);
   ObjectDelete(OBJ_NAME4);

   ObjectDelete("ZeroLevel"); // ZeroLevel
//----
  ObjectDelete("Lable2"); // Balance
  ObjectDelete("Lable3"); // Equity 
//----
   return (0);
}
//=============================

int start()
{
   Info();

// отрисовка уровня безубытка   
if (VisuaZeroLevel == true)
   {
      SetHLine(ZeroLevelColor,"ZeroLevel",Zero_Level (Symbol()),STYLE_DOT,1);
   }

{//Balance
if (VisualBalance == true) // отображать или нет, настраивается в меню
   {
  Balance = NormalizeDouble( AccountBalance(),2);
  Equity = NormalizeDouble(AccountEquity(),2);  
    if (Equity >= Balance/6*5) col = DodgerBlue; 
    if (Equity >= Balance/6*4 && Equity < Balance/6*5)col = DeepSkyBlue;
    if (Equity >= Balance/6*3 && Equity < Balance/6*4)col = Gold;
    if (Equity >= Balance/6*2 && Equity < Balance/6*3)col = OrangeRed;
    if (Equity >= Balance/6   && Equity < Balance/6*2)col = Crimson;
    if (Equity <  Balance/5                           )col = Red;
   //------------------------- 
ObjectDelete("Lable2");
ObjectCreate("Lable2",OBJ_LABEL,0,0,1.0);
   ObjectSet("Lable2", OBJPROP_CORNER, 3);
   ObjectSet("Lable2", OBJPROP_XDISTANCE, 14);
   ObjectSet("Lable2", OBJPROP_YDISTANCE, 31);
   txt2=(DoubleToStr(AccountBalance(), 2));
   ObjectSetText("Lable2","Balance "+txt2+"",16,"Times New Roman",DodgerBlue);
   //-------------------------   
ObjectDelete("Lable3");
ObjectCreate("Lable3",OBJ_LABEL,0,0,1.0);
   ObjectSet("Lable3", OBJPROP_CORNER, 3);
   ObjectSet("Lable3", OBJPROP_XDISTANCE, 14);
   ObjectSet("Lable3", OBJPROP_YDISTANCE, 11);
   txt3=(DoubleToStr(AccountEquity(), 2));
   ObjectSetText("Lable3","Equity "+txt3+"",16,"Times New Roman",col);
   }
}//End   

   return (0);
}
//=============================

void Info()
{
   static double spread;
   static double margin;
   static double tick;
   static double risk;
   static double swoplong;   
   static double swopshort;

   spread = MarketInfo(Symbol(), MODE_SPREAD);
   margin = (MarketInfo(Symbol(), MODE_MARGINREQUIRED)*MarginLot);
   tick = (MarketInfo(Symbol(), MODE_TICKVALUE)*MarginLot);
   risk = LotSize();
   swoplong = MarketInfo(Symbol(), MODE_SWAPLONG);
   swopshort = MarketInfo(Symbol(), MODE_SWAPSHORT);
   
   DrawOnChart(spread,margin,tick,risk,swoplong,swopshort);
}

void DrawOnChart(double spread,double margin,double tick,double risk,double swoplong,double swopshort)
{
   string s = "Spread: "+DoubleToStr(spread, 0)+" points";
   string s1 = "Lot: "+DoubleToStr(MarginLot, 2)+ " Margin: "+DoubleToStr(margin, 2)+" "+AccountInfoString(ACCOUNT_CURRENCY);
   string s2 = "TickValue: "+DoubleToStr(tick, Digits)+" "+AccountInfoString(ACCOUNT_CURRENCY);
   string s3 = "Risk: "+DoubleToStr(Risk, 1)+" %"+" StopLoss: "+DoubleToStr(StopLoss, 0)+" pp"+" Lot: "+DoubleToStr(risk, 2);
   string s4 = "SwopLong: "+DoubleToStr(swoplong, 3)+" SwopShort: "+DoubleToStr(swopshort, 3);
      
   if(ObjectFind(OBJ_NAME) < 0)
   {
      ObjectCreate(OBJ_NAME, OBJ_LABEL, 0, 0, 0);
      ObjectSet(OBJ_NAME, OBJPROP_CORNER, 0);
      ObjectSet(OBJ_NAME, OBJPROP_YDISTANCE, 12+YDistance);
      ObjectSet(OBJ_NAME, OBJPROP_XDISTANCE, 14+XDistance);
      ObjectSetText(OBJ_NAME, s, 10, "FixedSys", SpreadColor);
   }
   if(ObjectFind(OBJ_NAME1) < 0)
   {
      ObjectCreate(OBJ_NAME1, OBJ_LABEL, 0, 0, 0);
      ObjectSet(OBJ_NAME1, OBJPROP_CORNER, 0);
      ObjectSet(OBJ_NAME1, OBJPROP_YDISTANCE, 24+YDistance);
      ObjectSet(OBJ_NAME1, OBJPROP_XDISTANCE, 14+XDistance);
      ObjectSetText(OBJ_NAME1, s1, 10, "FixedSys", MarginColor);
   }
   if(ObjectFind(OBJ_NAME2) < 0)
   {
      ObjectCreate(OBJ_NAME2, OBJ_LABEL, 0, 0, 0);
      ObjectSet(OBJ_NAME2, OBJPROP_CORNER, 0);
      ObjectSet(OBJ_NAME2, OBJPROP_YDISTANCE, 36+YDistance);
      ObjectSet(OBJ_NAME2, OBJPROP_XDISTANCE, 14+XDistance);
      ObjectSetText(OBJ_NAME2, s2, 10, "FixedSys", TickColor);
   }
   if(ObjectFind(OBJ_NAME3) < 0)
   {
      ObjectCreate(OBJ_NAME3, OBJ_LABEL, 0, 0, 0);
      ObjectSet(OBJ_NAME3, OBJPROP_CORNER, 0);
      ObjectSet(OBJ_NAME3, OBJPROP_YDISTANCE, 48+YDistance);
      ObjectSet(OBJ_NAME3, OBJPROP_XDISTANCE, 14+XDistance);
      ObjectSetText(OBJ_NAME3, s3, 10, "FixedSys", RiskColor);
   }   
   if(ObjectFind(OBJ_NAME4) < 0)
   {
      ObjectCreate(OBJ_NAME4, OBJ_LABEL, 0, 0, 0);
      ObjectSet(OBJ_NAME4, OBJPROP_CORNER, 0);
      ObjectSet(OBJ_NAME4, OBJPROP_YDISTANCE, 60+YDistance);
      ObjectSet(OBJ_NAME4, OBJPROP_XDISTANCE, 14+XDistance);
      ObjectSetText(OBJ_NAME4, s4, 10, "FixedSys", SwopColor);
   }
   
   ObjectSetText(OBJ_NAME, s);
   ObjectSetText(OBJ_NAME1, s1);
   ObjectSetText(OBJ_NAME2, s2);
   ObjectSetText(OBJ_NAME3, s3);
   ObjectSetText(OBJ_NAME4, s4);
   
   WindowRedraw();
}

//===============================================================
double LotSize()
{
   if (StopLoss == 0) return(0); // no zero divide
   double Free    =AccountBalance();
   double LotVal  =MarketInfo(Symbol(),MODE_TICKVALUE);
   double Min_Lot =MarketInfo(Symbol(),MODE_MINLOT);
   double Max_Lot =MarketInfo(Symbol(),MODE_MAXLOT);
   double Step    =MarketInfo(Symbol(),MODE_LOTSTEP);
   if (Step==0) return (0); // no zero divide
   if ((StopLoss*LotVal)/Step==0) return (0); // no zero divide
   double Lot     =MathFloor((Free*Risk/100)/(StopLoss*LotVal)/Step)*Step;
   if(Lot<Min_Lot)  Lot=Min_Lot;
   if(Lot>Max_Lot)  Lot=Max_Lot;
   return(Lot);
}
// End

//+------------------------------------------------------------------+
//|                                                   Zero_Level.mq4 |
//|                                         Copyright © 2007, Xupypr |
//+------------------------------------------------------------------+
// Функция вычисляющая уровни без убытка, на покупку, на продажу с учетом накопленных свопов.
double Zero_Level (string sy)
  {
   double ZeroLevel=0;
   double BuyLots=0;
   double SellLots=0;
   double BuyProfit=0;
   double SellProfit=0;
   double SellLevel;
   double BuyLevel;
   string SLVirtual=":SLVirtual"; //добавление комментария к символу для поиска глобальной переменной виртуального трейлинга пирамиды
   int Total=OrdersTotal();
   for(int i=Total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()!=sy) continue;
         if(OrderType()==OP_BUY)
           {
            BuyLots=BuyLots+OrderLots();
            BuyProfit=BuyProfit+OrderProfit()+OrderCommission()+OrderSwap();
           }
      if (OrderType()==OP_SELL)
           {
            SellLots=SellLots+OrderLots();
            SellProfit=SellProfit+OrderProfit()+OrderCommission()+OrderSwap();
           }
        }
     }

   double TickValue=MarketInfo(sy,MODE_TICKVALUE);
   if (BuyLots>0) BuyLevel=NormalizeDouble(MarketInfo(sy,MODE_BID)-(BuyProfit/(TickValue*BuyLots)*MarketInfo(sy,MODE_POINT)),(int)MarketInfo(sy,MODE_DIGITS)); else BuyLevel=0;
   if (SellLots>0) SellLevel=NormalizeDouble(MarketInfo(sy,MODE_ASK)+(SellProfit/(TickValue*SellLots)*MarketInfo(sy,MODE_POINT)),(int)MarketInfo(sy,MODE_DIGITS)); else SellLevel=0;
   if (BuyLevel>0) ZeroLevel=BuyLevel;
   if (SellLevel>0) ZeroLevel=SellLevel;
         
   return(ZeroLevel);
  }
// End

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//END

Это под МТ4 но должно и в пятом работать.

Визуально показывает риск и стоимость пунктов для любых инструментов.


Файлы:
 
Для критиков кода и версий. Я не сказал что напишу, я сказал что в архиве поищу. Это моя одна из первых сборок функций, которой более десяти лет)
 

тоже что то химичил в этом эксперте (https://www.mql5.com/ru/code/30444) - все равно не точно в пунктах получилось, в валюте совпадает

Снимок экрана 2021-10-02 203739     Снимок экрана 2021-10-02 211631   в пунктах не большая разница 

 
SanAlex #:

тоже что то химичил в этом эксперте (https://www.mql5.com/ru/code/30444) - все равно не точно в пунктах получилось, в валюте совпадает

        в пунктах не большая разница 

Вот пытался чего то добиться - вроде что то рядом. пробуйте сами найти способ - начало есть! (где жёлтым - там надо настроить пункты)

//+------------------------------------------------------------------+
//|                                                 Profit_Point.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#define InpMagic 131889285
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CPositionInfo  m_position; // trade position object
CTrade         m_trade;    // trading object
CSymbolInfo    m_symbol;   // symbol info object
//---
input int    StopLoss   = 1000;   // Stop loss
input int    TakeProfit = 250;    // Take profit
input double Vol        = 0.01;   // Trade volume (lot size)
input double InpPoints  = 100000; // :Gold=100/:JPY=1000/:USD=100000
//---
double m_adjusted_point; // point value adjusted for 3 or 5 points
string txt,m_name[]= {"BUY","SELL"};
double change,ask,bid,buy_sl,buy_tp,sell_sl,sell_tp;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);;
   RefreshRates();
//---
   m_trade.SetExpertMagicNumber(InpMagic);
   m_trade.SetMarginMode();
   m_trade.SetTypeFillingBySymbol(m_symbol.Name());
//--- tuning for 3 or 5 digits
   int digits_adjust=1;
   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
      digits_adjust=10;
   m_adjusted_point=m_symbol.Point()*digits_adjust;
//--- set default deviation for trading in adjusted points
//--- set default deviation for trading in adjusted points
   m_trade.SetDeviationInPoints(3*digits_adjust);
//---
   int _y=100;
   for(int i=0; i<ArraySize(m_name); i++)
     {
      ButtonCreate(m_name[i],5,_y,130,20,10);
      _y=_y+25;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0; i<ArraySize(m_name); i++)
     {
      ObjectDelete(0,Symbol()+m_name[i]);
     };
   ObjectsDeleteAll(0,"cm");
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   ask      = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   bid      = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
   buy_sl   = NormalizeDouble(ask-StopLoss*_Point,_Digits);
   buy_tp   = NormalizeDouble(ask+TakeProfit*_Point,_Digits);
   sell_sl  = NormalizeDouble(bid+StopLoss*_Point,_Digits);
   sell_tp  = NormalizeDouble(bid-TakeProfit*_Point,_Digits);
//---
   if(ObjectGetInteger(0,m_symbol.Name()+"SELL",OBJPROP_STATE)!=0)
     {
      ObjectSetInteger(0,m_symbol.Name()+"SELL",OBJPROP_STATE,0);
      if(!m_trade.Sell(Vol,_Symbol,bid,sell_sl,sell_tp))
        {
         Print("failed to send order. Error: ",GetLastError());
         return;
        }
      PlaySound("ok.wav");
     }
   if(ObjectGetInteger(0,m_symbol.Name()+"BUY",OBJPROP_STATE)!=0)
     {
      ObjectSetInteger(0,m_symbol.Name()+"BUY",OBJPROP_STATE,0);
      if(!m_trade.Buy(Vol,_Symbol,ask,buy_sl,buy_tp))
        {
         Print("failed to send order. Error: ",GetLastError());
         return;
        }
      PlaySound("ok.wav");
     }
   Optimized();
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
void Optimized(void)
  {
   double PROFIT_BUY=0.00;
   double PROFIT_SELL=0.00;
   double PROFIT_BUY_1=0.00;
   double PROFIT_SELL_1=0.00;
   double m_Point=NormalizeDouble(InpPoints*_Point,_Digits);
//---
   for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of open positions
     {
      string   position_GetSymbol=PositionGetSymbol(i); // GetSymbol позиции
      if(position_GetSymbol==m_symbol.Name())
        {
         if(m_position.PositionType()==POSITION_TYPE_BUY)
           {
            PROFIT_BUY=PROFIT_BUY+PositionGetDouble(POSITION_PROFIT);
           }
         else
           {
            PROFIT_SELL=PROFIT_SELL+PositionGetDouble(POSITION_PROFIT);
           }
         if(m_position.PositionType()==POSITION_TYPE_BUY)
           {
            PROFIT_BUY_1=PROFIT_BUY_1+(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/
                                       SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE)/m_Point);
           }
         else
           {
            PROFIT_SELL_1=PROFIT_SELL_1+(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/
                                         SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE)/m_Point);
           }
        }
     }
   StringConcatenate(txt,"SELL в пунктах=",DoubleToString(PROFIT_SELL_1,2));
   DrawLABEL(2,"cm 2",txt,5,30,clrDarkOrange,ANCHOR_RIGHT);
   StringConcatenate(txt,"SELL в валюте=",DoubleToString(PROFIT_SELL,2));
   DrawLABEL(2,"cm 3",txt,5,45,clrDarkOrange,ANCHOR_RIGHT);
   StringConcatenate(txt,"BUY в пунктах=",DoubleToString(PROFIT_BUY_1,2));
   DrawLABEL(2,"cm 4",txt,5,75,clrMediumSeaGreen,ANCHOR_RIGHT);
   StringConcatenate(txt,"BUY в валюте=",DoubleToString(PROFIT_BUY,2));
   DrawLABEL(2,"cm 5",txt,5,90,clrMediumSeaGreen,ANCHOR_RIGHT);
   StringConcatenate(txt,"Средства=",DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY),2));
   DrawLABEL(3,"cm 6",txt,5,25,clrLime,ANCHOR_RIGHT);
  }
//+------------------------------------------------------------------+
//|   DrawLABEL                                                      |
//+------------------------------------------------------------------+
void DrawLABEL(int c,string name,string text,int X,int Y,color clr,int ANCHOR=ANCHOR_LEFT,int FONTSIZE=8)
  {
   if(ObjectFind(0,name)==-1)
     {
      ObjectCreate(0,name,OBJ_LABEL,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_CORNER,c);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,X);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,Y);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,FONTSIZE);
      ObjectSetString(0,name,OBJPROP_FONT,"Arial");
      ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR);
     }
   ObjectSetString(0,name,OBJPROP_TEXT,text);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ButtonCreate(string name,int Xdist,
                  int Ydist,int Xsize,int Ysize,int FONTSIZE=12)
  {
   if(ObjectFind(0,m_symbol.Name()+name)<0)
      ObjectCreate(0,m_symbol.Name()+name,OBJ_BUTTON,0,100,100);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_COLOR,clrGray);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_BGCOLOR,clrBlack);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_XDISTANCE,Xdist);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_YDISTANCE,Ydist);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_XSIZE,Xsize);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_YSIZE,Ysize);
   ObjectSetString(0,m_symbol.Name()+name,OBJPROP_FONT,"Sans Serif");
   ObjectSetString(0,m_symbol.Name()+name,OBJPROP_TEXT,name);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_FONTSIZE,FONTSIZE);
   ObjectSetInteger(0,m_symbol.Name()+name,OBJPROP_SELECTABLE,false);
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates()
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print(__FILE__," ",__FUNCTION__,", ERROR: ","RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
     {
      Print(__FILE__," ",__FUNCTION__,", ERROR: ","Ask == 0.0 OR Bid == 0.0");
      return(false);
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+


 

 
SanAlex # :

Вот пытался чего то добиться - вроде что то рядом. пробуйте сами найти способ - начало есть! (где жёлтым - там надо настроить пункты)


 

Спасибо, попробую.

Причина обращения: