포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 400

 
khorosh :


고마워, 유리.
나는 당신의 코드를 사용하려고 노력할 것이지만 나중에는 디스어셈블되고 작동 원리를 이해해야하기 때문에.
위의 단계는 어렵지 않습니다. 그러면 Mr. "N"의 각 사용자 기능을 구문 분석해야 합니다. 이것은 각각 복잡성이 가장 높기 때문에 3시간에서 10시간까지 많은 시간이 소요됩니다. 말: - 언젠가. -).

나는 내 코드를 완성할 것이고, "내 서식지"가 있고 거기에서 공부할 것이 아무것도 없습니다.

다시 한 번 감사합니다, 유리님.




보릴루나드 :
1 - 그는 아무것도 할 수 없습니다! 2 - 그냥 쓰고 싶어! 3 - 설명해도 소용없어! 4 - 논리가 전혀 없습니다! 5 - 구제불능의 패자!

1 - 상대적으로 - 그렇습니다.
2 - 상황을 정리하는 데 도움이 되었습니다.
3 - 전혀 쓸모가 없습니다.
4 - 내가 당신에게 대답한다는 사실 때문에 - 예.
5 - 5개의 4개 점수로 반년을 마쳤습니다. 다른 모든 등급은 5개입니다.

당신은 나와 같은 포럼 규칙을 어겼습니다.
이제 당신의 계정은 경고를 받을 자격이 있고 내 계정은 금지 대상입니다.

불합리한 행동(비판 대응)을 용서해 주십시오.
 
Link_x :

고마워, 유리.
나는 당신의 코드를 사용하려고 노력할 것이지만 나중에는 디스어셈블되고 작동 원리를 이해해야하기 때문에.
위의 단계는 어렵지 않습니다. 그러면 Mr. "N"의 각 사용자 기능을 구문 분석해야 합니다. 이것은 각각 복잡성이 가장 높기 때문에 3시간에서 10시간까지 많은 시간이 소요됩니다. 말: - 언젠가. -).

나는 내 코드를 완성할 것이고, "내 서식지"가 있고 거기에서 공부할 것이 아무것도 없습니다.

다시 한 번 감사합니다, 유리님.






우선 각 기능의 코드를 자세히 알아볼 필요는 없습니다. 함수에 사용되는 매개변수, 그 목적 및 용도를 이해하는 것으로 충분합니다. 실제로 각 기능의 내부를 직접 조사하지는 않았습니다. 그리고 그는 그것을 무언가로 바꿔야 할 때에만 그것을 탐구했습니다. 따라서 휴대 전화, 컴퓨터, TV를 인생에서 성공적으로 사용하지만 그들의 계획과 작업을 자세히 알지 못하지만 이것이 자신의 목적을 위해 사용하는 것을 막지는 않습니다. 따라서 여기서 중요한 것은 이러한 기능을 사용할 수 있다는 것입니다. 모든 기능과 그 목적이 여기 에 설명되어 있습니다. 사용법은 각 기능별로 주어진 테스트를 통해 이해할 수 있습니다. 이 경로를 따르면 프로그래머로서의 발전이 더 빨라질 것입니다. 그리고 자신의 자전거를 발명하는 것은 길고 비생산적인 여정입니다. 귀하의 버전에 따라 전문가를 구축하는 것은 건축 자재 없이 집을 짓는 것과 같습니다. 모든 것은 스스로 발명해야 합니다. 빌딩 블록(기능)이 있을 때 집을 짓는 것이 훨씬 빠릅니다.
 

안녕하세요!

AccountEquity() 함수가 터미널에 요청을 합니까 아니면 브로커에 요청을 합니까?

이 질문은 각 틱 에서 이 함수를 호출하면 브로커를 자극할 수 있고(특히 동시에 여러 차트에서 Expert Advisor를 실행할 때) 따라서 계정을 차단할 수 있다는 가정으로 인해 발생합니다.

 
yan720 :

안녕하세요!

AccountEquity() 함수가 터미널에 요청을 합니까 아니면 브로커에 요청을 합니까?

이 질문은 각 틱에서 이 함수를 호출하면 브로커를 자극할 수 있고(특히 동시에 여러 차트에서 Expert Advisor를 실행할 때) 따라서 계정을 차단할 수 있다는 가정으로 인해 발생합니다.


예, 물론 중개인에게)))

터미널은 상관하지 않습니다....마지막으로 알려진 데이터를 제공합니다...

 
vadynik :
매직 기능으로 전환이 필요한 질문인지 아닌지 .

이것은 마법이 무엇을 위한 것인지 알면 이해할 수 있습니다. 그리고 전문가가 자신의 주문을 다른 전문가의 주문이나 수동으로 개설한 주문과 구별할 수 있도록 하는 데 필요합니다. 여러 개의 바이-스톱 주문이 설정되어 있고 그 중 다른 매직 또는 수동 주문(매직 없음)이 있는 경우 해당 기능에 매직이 필요합니다. 그리고 일반적으로 함수를 보편화하기 위해 함수에 대한 매개변수로 매직을 설정하는 것이 좋습니다. 그리고 기본적으로 예를 들어 -1과 같게 만듭니다.

 double BuystopPrice( int Magic = - 1 )
{
double Price= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) 
     {
         if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
        {
           if ( OrderMagicNumber ()==Magic && OrderType ()== OP_BUYSTOP )
          {
           Price = OrderOpenPrice ();
           break ;
          }
        }
     }
     return (Price);
}

일반적으로 함수의 코드가 for 루프에서 첫 번째 바이-스톱 주문만 놓는 가격을 결정하기 때문에 루프 자체는 원칙적으로 필요하지 않습니다.

 
khorosh :
우선 각 기능의 코드를 자세히 알아볼 필요는 없습니다. 함수에서 사용되는 매개변수를 목적과 용도와 함께 처리하는 것으로 충분합니다. 실제로 각 기능의 내부를 직접 조사하지는 않았습니다. 그리고 그는 그것을 무언가로 바꿔야 할 때에만 그것을 탐구했습니다. 따라서 회로와 작업을 자세히 알지 못하더라도 휴대 전화, 컴퓨터, TV를 인생에서 성공적으로 사용하지만 이것이 자신의 목적을 위해 사용하는 것을 막지는 않습니다. 따라서 여기서 중요한 것은 이러한 기능을 사용할 수 있다는 것입니다. 모든 기능과 그 목적이 여기 에 설명되어 있습니다. 사용법은 각 기능별로 주어진 테스트를 통해 이해할 수 있습니다. 이 경로를 따르면 프로그래머로서의 발전이 더 빨라질 것입니다. 그리고 자신의 자전거를 발명하는 것은 길고 비생산적인 여정입니다. 귀하의 버전에 따라 전문가를 구축하는 것은 건축 자재 없이 집을 짓는 것과 같습니다. 모든 것은 스스로 발명해야 합니다. 빌딩 블록(기능)이 있을 때 집을 짓는 것이 훨씬 빠릅니다.


당신은 필요한 경우 설명하고 설득하는 방법을 아는 현명한 사람입니다. :)
그 점에 대해 다시 한 번 감사드립니다.

이 경우 나는 진핵 세포의 소기관에서 집을 짓고 건설을 위해 일반 건축 자재를 사용합니다.
 

두 함수에 오류가 있는지 살펴보십시오.

첫 번째의 본질: 가격이 특정 수의 포인트(TP-포인트 수)를 올바른 방향으로 통과하는 경우 주문 그리드(martin에 의해 열림)를 닫은 후 드로다운을 종료하는 데 필요한 로트를 계산해야 합니다.

두 번째의 본질: 가장 오래된 것부터 시작하여 그리드 주문의 절반을 닫아야 합니다.

 double FindRightLot ( int otype) // функция поиска лота, необходимого для выхода из просадки после 
                               //закрытия сетки ордеров
{
   double Lot= 0 ; double TotalLot= 0 ;
   for ( int i = OrdersTotal ()- 1 ; i> 0 ; i--)
  {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
    {
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic && OrderType () == otype)
       {
         if (otype == OP_BUY )
         {
           Lot = NormalizeDouble (( OrderOpenPrice ()- Bid )* OrderLots ()/TP, 2 ); 
           if (Lot> 0 )
           {
              TotalLot= NormalizeDouble (TotalLot+Lot, 2 );
           }
         }
           
       
         else if (otype == OP_SELL )
         {
           Lot = NormalizeDouble (( Ask - OrderOpenPrice ())* OrderLots ()/TP, 2 );
           if (Lot> 0 )
           {
            TotalLot= NormalizeDouble (TotalLot+Lot, 2 );
           }
           
         }
       }
     }
   }
   return (TotalLot);
   
 }
//+------------------------------------------------------------------+

void CloseHalfOrders ( int otype) // ф-ция закрытия половины ордеров сетки
{
   int count = 0 ;
   for ( int i = 0 ; i<= OrdersTotal (); i++)
  {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
    {
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magic && OrderType () == otype)
       {
         if (otype == OP_BUY )
         { 
           if (count<CountTrades( OP_BUY )/ 2 && CountTrades( OP_BUY )> 3 )
           
             OrderClose ( OrderTicket (), OrderLots (), Bid , 0 ,Black);
             count++;
           
         }
       
       
         else if (otype == OP_SELL )
         {
           if (count<CountTrades( OP_SELL )/ 2 && CountTrades( OP_SELL )> 3 )
           
           OrderClose ( OrderTicket (), OrderLots (), Ask , 0 ,Black);
           count++;
           
         }
       }
     }
   }
   
 }
 
얘들아, 글쎄, 당신은 이것을 할 수 없다 ... 당신은 MQL5가 맞습니다. 거기에는 POSITIONS 만 완전히 열려 있습니다 ....
 
yan720 :


AccountEquity() 함수가 터미널에 요청을 합니까 아니면 브로커에 요청을 합니까?

터미널로
 
vadynik :


나는 아마도 질문을 아주 정확하게 하지 않았을 것입니다. 제 말은 함수가 전역 변수에 설정된 마법을 볼 수 있다는 것을 의미합니다

또는 전역적이기 때문에 필요하지 않다고 생각하지만 함수에 전달되어야 합니다.

전역 변수 에 있다면 예, 그는 그것을 볼 것입니다. 그러나 함수는 보편적이어야 하고 하나 이상의 마법과 함께 작동해야 하며 이를 위해서는 함수 매개변수로 전달하는 것이 좋습니다.