Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 624

 
Leo59 :
Lütfen bana buna neyin sebep olabileceğini söyle?

çift a;
int x, y;

x=100; y=3; A=x/y=33.000
Целый тип int x= 100 / Целый тип int y= 3 => Целое число 33 .
Так как "А" - это вещественное число, то Целое число "33" преобразовывается к вещественному и получаем 33.0
 
Karputov Vladimir :
Teşekkürler Vladimir!

İlginç bir özellik. Arama yaparsın, arama motorunda ararsın, hiçbir şey bulamazsın. Forumda bir soru sorar sormaz, cevap beklerken kendiniz bulursunuz))


https://www.mql5.com/en/articles/1561

MQL4'te çiftlerle çalışmanın özellikleri

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59 :
Lütfen bana buna neyin sebep olabileceğini söyler misiniz?

çift a;
int x, y;

x=100; y=3; A=x/y=33.000

Bu zaten bir kural:

matematiksel hesaplamalarda kullanılan değişkenleri, zahmete girmeden hemen double olarak bildirmek daha iyidir.

ve bu tür hesaplamalar bir artımlı döngü değişkeni kullanıyorsa, double y=y+1 veya double y=y-1 kullanın;

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
new-rena :

Bu zaten bir kural:

matematiksel hesaplamalarda kullanılan değişkenleri, zahmete girmeden hemen double olarak bildirmek daha iyidir.

ve bu tür hesaplamalar bir artımlı döngü değişkeni kullanıyorsa, double y=y+1 veya double y=y-1 kullanın;

Ayrıca açık bir tür dönüşümü de vardır:

 double A;
int x, y;

x= 100 ; y= 3 ; 
A=( double )x/y; // в операциях умножения и деления достаточно привести к double только одно
 

Merhaba.

Açık pozisyonlar arasında belli lotlu bir pozisyonu nasıl bulacağımı söyleyin lütfen.

Sembol ve sihir bilinmiyor. Örneğin, aşağıdaki koşula ihtiyacımız var: eğer   (pozisyon lotu== 0.1) sonra {biraz eylem;}

 
mila.com :

Merhaba.

Açık pozisyonlar arasında belli lotlu bir pozisyonu nasıl bulacağımı söyleyin lütfen.

Sembol ve sihir bilinmiyor. Örneğin, aşağıdaki koşula ihtiyacımız var: eğer   (pozisyon partisi== 0.1) sonra {biraz eylem;}

Tüm açık pozisyonlar üzerinde yinelenen ve bunların hacmini belirtilen (değişken " lot ") ile karşılaştıran bir komut dosyası örneği:

 //+------------------------------------------------------------------+
//|                                               PositionsTotal.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property   script_show_inputs
//--- input parameter
input double lot= 0.01 ; // искомый лот
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int count_positions= PositionsTotal (); // количество открытых позиций
   for ( int i= 0 ;i<count_positions;i++)
     {
       ResetLastError ();
       //--- возвращает символ соответствующей открытой позиции и автоматически выбирает позицию для дальнейшей работы с ней 
       string name= PositionGetSymbol (i);
       if (name== NULL )
        {
         Print ( "PositionGetSymbol Error# " , GetLastError ());
         return ;
        }

       double position_lot= PositionGetDouble ( POSITION_VOLUME ); // получаем объем позиции
       if (position_lot!= 0 )
        {
         if (position_lot==lot)
           {
             // найдена позиция с заданным объёмом 
           }
        }
     }
  }
//+------------------------------------------------------------------+
Dosyalar:
 
Karputov Vladimir :

Tüm açık pozisyonlar üzerinde yinelenen ve bunların hacmini belirtilen (değişken " lot ") ile karşılaştıran bir komut dosyası örneği:

Teşekkür ederim, belirtmedim ama MQL 4 için benzer bir şey var mı?

 
mila.com :

Teşekkür ederim, belirtmedim ama MQL 4 için benzer bir şey var mı?

Hayır hayır. Hem netleştirme hem de riskten korunma özelliğine sahip olan ve gerçek borsalarda işlem yapmanızı sağlayan MetaTrader 5 varsa neden?

 
Karputov Vladimir :

Tüm açık pozisyonlar üzerinde yinelenen ve bunların hacmini belirtilen (değişken " lot ") ile karşılaştıran bir komut dosyası örneği:

Vladimir, bu kodda 0.0 hacimli bir pozisyonu nasıl hayal ettiğinizi sorabilir miyim?

       double position_lot= PositionGetDouble ( POSITION_VOLUME ); // получаем объем позиции
       if (position_lot!= 0 )
 
Alexey Viktorov :

Vladimir, bu kodda 0.0 hacimli bir pozisyonu nasıl hayal ettiğinizi sorabilir miyim?

Bu, PositionGetDouble işlevinin dönüp dönmediğini görmek için yapılan bir testtir. Başarısızlık durumunda bir hatayı gösteren 0 döndürür.