초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 624

 
Leo59 :
이 문제의 원인이 무엇인지 알려주십시오.

더블 A;
정수 x, y;

x=100; y=3; A=x/y=33.000
Целый тип int x= 100 / Целый тип int y= 3 => Целое число 33 .
Так как "А" - это вещественное число, то Целое число "33" преобразовывается к вещественному и получаем 33.0
 
Karputov Vladimir :
블라디미르 감사합니다!

흥미로운 기능입니다. 검색하고 검색 엔진에서 검색해도 아무 것도 찾을 수 없습니다. 포럼에서 질문을 하자마자 답변을 기다리는 동안 스스로 찾을 수 있습니다.))


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

MQL4에서 이중 작업의 특성

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59 :
이 문제의 원인이 무엇인지 알려주실 수 있습니까?

더블 A;
정수 x, y;

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

이미 규칙입니다.

수학적 계산 에 사용되는 변수는 귀찮게하지 않고 즉시 double로 선언하는 것이 좋습니다.

이러한 계산이 증분 루프 변수를 사용하는 경우 double y=y+1 또는 double y=y-1을 사용합니다.

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

이미 규칙입니다.

수학적 계산 에 사용되는 변수는 귀찮게하지 않고 즉시 double로 선언하는 것이 좋습니다.

이러한 계산이 증분 루프 변수를 사용하는 경우 double y=y+1 또는 double y=y-1을 사용합니다.

명시적 유형 변환도 있습니다.

 double A;
int x, y;

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

안녕하세요.

특정 로트가 있는 포지션, 열린 포지션 중에서 찾는 방법을 알려주세요.

알 수 없는 상징과 마법. 예를 들어 다음 조건이 필요합니다.   (포지션 로트== 0.1) 그런 다음 {일부 조치;}

 
mila.com :

안녕하세요.

특정 로트가 있는 포지션, 열린 포지션 중에서 찾는 방법을 알려주세요.

알 수 없는 상징과 마법. 예를 들어 다음 조건이 필요합니다.   (포지션 로트== 0.1) 그런 다음 {일부 조치;}

다음은 모든 열린 위치를 반복하고 해당 볼륨을 지정된 위치(변수 " lot ")와 비교하는 스크립트의 예입니다.

 //+------------------------------------------------------------------+
//|                                               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)
           {
             // найдена позиция с заданным объёмом 
           }
        }
     }
  }
//+------------------------------------------------------------------+
파일:
 
Karputov Vladimir :

다음은 모든 열린 위치를 반복하고 해당 볼륨을 지정된 위치(변수 " lot ")와 비교하는 스크립트의 예입니다.

감사합니다. 죄송합니다. 지정하지 않았지만 MQL 4에도 비슷한 것이 있습니까?

 
mila.com :

감사합니다. 죄송합니다. 지정하지 않았지만 MQL 4에도 비슷한 것이 있습니까?

아니 아니. 네팅과 헤징이 모두 가능하고 실제 거래소에서 거래할 수 있는 MetaTrader 5가 있다면 왜 그럴까요?

 
Karputov Vladimir :

다음은 모든 열린 위치를 반복하고 해당 볼륨을 지정된 위치(변수 " lot ")와 비교하는 스크립트의 예입니다.

Vladimir, 이 코드에서 볼륨이 0.0인 위치를 어떻게 상상하는지 여쭤봐도 될까요?

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

Vladimir, 이 코드에서 볼륨이 0.0인 위치를 어떻게 상상하는지 여쭤봐도 될까요?

PositionGetDouble 함수가 반환되는지 확인하는 검사입니다. 실패 시 오류를 나타내는 0을 반환합니다.
사유: