MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 521

 
모두 행복한 부활절! 문제를 해결하는 방법, mql4 에서 이중 유형 은 가격을 계산할 때 -9315605757223320000.00, -9232595408891630000.00과 같은 값을 제공하지 않았지만 mql5는 어딘가에서 파헤 쳤습니까? 따옴표에 결함이 있습니까? 이 상황을 해결하는 방법은 무엇입니까? 덕분에.
 
mwwm :
모두 행복한 부활절! 문제를 해결하는 방법, mql4 에서 이중 유형 은 가격을 계산할 때 -9315605757223320000.00, -9232595408891630000.00과 같은 값을 제공하지 않았지만 mql5는 어딘가에서 파헤 쳤습니까? 따옴표에 결함이 있습니까? 이 상황을 해결하는 방법은 무엇입니까? 덕분에.
코드는 어디에 있습니까?
 
Artyom Trishkin :
코드는 어디에 있습니까?

다음은 예입니다.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot OC
#property indicator_label1    ""
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
#property strict 
//--- indicator buffers
double Op[],Hi[],Lo[],Cl[],Ti[];
double q1[ 100 ],q2[ 100 ];

///---------
double Lim1[ 10 ],Lim2[ 10 ];
double Max1[ 10 ],Min1[ 10 ];
double Max2[ 10 ],Min2[ 10 ];
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int OnInit ()
  {
//--- откроем файл 
   ResetLastError ();
//--- привязка массива к индикаторному буферу с индексом 0 
   SetIndexBuffer ( 0 ,Ti, INDICATOR_DATA ); SetIndexBuffer ( 1 ,Op, INDICATOR_DATA ); SetIndexBuffer ( 2 ,Hi, INDICATOR_DATA );
   SetIndexBuffer ( 3 ,Lo, INDICATOR_DATA ); SetIndexBuffer ( 4 ,Cl, INDICATOR_DATA );
//---- установка значений индикатора, которые не будут видимы на графике 
//--- 
   ArraySetAsSeries (Ti, true );
   ArraySetAsSeries (Op, true );
   ArraySetAsSeries (Hi, true );
   ArraySetAsSeries (Lo, true );
   ArraySetAsSeries (Cl, true );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function                              | 
//+------------------------------------------------------------------+ 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   ArraySetAsSeries (time, true ); 
   ArraySetAsSeries (open, true ); 
   ArraySetAsSeries (high, true ); 
   ArraySetAsSeries (low, true ); 
   ArraySetAsSeries (close, true ); 
   ArrayInitialize (Lim1, 1 ); ArrayInitialize (Lim2, 1 );
  
   int f= 1 ;
/////////      
//--- Проверка на минимальное колиество баров для расчёта
   if (rates_total< 1 ) return 0 ;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if (limit> 1 ) // если это первый запуск, или изменение истории, или открытие нового бара
     {
      limit=rates_total- 1 ;                   // установим начало цикла на начало исторических данных
       ArrayInitialize (Ti, EMPTY_VALUE );       // инициализируем массив
       ArrayInitialize (Op, EMPTY_VALUE );
       ArrayInitialize (Hi, EMPTY_VALUE );
       ArrayInitialize (Lo, EMPTY_VALUE );
       ArrayInitialize (Cl, EMPTY_VALUE ); 
     }
 int p= 0 ;
    
//--- Расчёт индикатора
   for ( int i=limit- 1 ; i>= 0 && ! IsStopped (); i--)
     {
      Op[i]=open[i];Hi[i]=high[i];Lo[i]=low[i];Cl[i]=close[i];

            q1[ 1 ]=((Hi[i+f+ 0 ]+Lo[i+f+ 0 ])/ 2 +Hi[i+f+ 0 ])/ 2 ;
            Lim1[ 1 ]=q1[ 1 ]-Hi[i+f+ 1 ];  
            Max1[ 1 ]= MathMax (Max1[ 1 ], Lim1[ 1 ]);
            Min1[ 1 ]= MathMin (Min1[ 1 ], Lim1[ 1 ]);

double n= 100000000 ;
if ( MathAbs (Lim1[ 1 ])>n){p++; Print (Lim1[ 1 ], " = " ,p, "  = " ,i);}
 } 
//--- return value of prev_calculated for next call 
   return (rates_total);
  }
 
안녕하세요 ! mql에서 vps를 설치하고 싶습니다. 다른 중개인이 있는 2개의 계정이 있고 2개의 다른 신호 제공자의 각 계정에 신호를 복사 하고 싶습니다. 각 계정에 대해 10$/월에 별도의 vps를 연결해야 합니까, 아니면 연결할 수 있습니까?
 
mt4에 대한 직접 링크를 던져주세요. mt4를 다운로드하려고 합니다. 대신 mt5가 설치되어 있습니다. 미리 감사드립니다
 
Aleksei Poliakov :
mt4에 대한 직접 링크를 던져주세요. mt4를 다운로드하려고 합니다. 대신 mt5가 설치되어 있습니다. 미리 감사드립니다
브로커에서 다운로드하기만 하면 됩니다. 또는 다른 사람에게서
 
Artyom Trishkin :


알렉세이 빅토로프 :


감사합니다. 이해합니다. 주문의 일부를 두세 번 닫았는지 추적하는 방법은 무엇입니까? 예를 들어, 0.1이 많았고, 0.5가 닫혔다가 0.25가 닫혔습니다.마지막으로 마감된 포지션 의 댓글은 오픈 티켓과 같을 것이고, 이전 마감된 포지션의 수익은 어떻게 검색할까요?

 
PolarSeaman :

감사합니다. 이해합니다. 주문의 일부를 두세 번 닫았는지 추적하는 방법은 무엇입니까? 예를 들어, 0.1이 많았고, 0.5가 닫혔다가 0.25가 닫혔습니다.마지막으로 마감된 포지션 의 댓글은 오픈 티켓과 같을 것이고, 이전 마감된 포지션의 수익은 어떻게 검색할까요?

n1과 유일한 것. 자신의 기록과 역사를 유지합니다.

터미널 주문의 이력을 살펴보는 또 다른 옵션이 있지만 미묘한 뉘앙스가 있습니다.

 
Maxim Kuznetsov :

n1과 유일한 것. 자신의 기록과 역사를 유지합니다.

무슨 반전이야!)))

 

여기 포럼에서 특정 날짜의 이익을 계산하는 함수를 찾았습니다. " 함수는 특정 날짜에 마감된 포지션의 예금 통화 로 총 이익을 반환합니다."

나는 이것이 나를 위해 일할 것이라고 생각한다. 그러나 부분적으로 닫은 위치가 열렸던 날짜를 찾는 방법은 무엇입니까?