[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 86

 
BeerGod :

인쇄 또는 주석에 표시할 변수를 문자열 DoubleToStr (이중 값, 정수 숫자)로 변경하고 필요한 정밀도를 설정합니다.

https://docs.mql4.com/en/convert/DoubleToStr

https://docs.mql4.com/ru/common/comment


알았어 고마워. 이것도 해보고 싶다, 아니면 ObjecCreate() 를 통해 낙서를 할까 하다가..
[삭제]  
okvseok :

마지막 주문부터 손실 주문까지 계산하는 기능을 알려주세요...

감사하다!

다음과 같이 시도할 수 있습니다.
 //+----------------------------------------------------------------------------+
// Убыточно ли закрылся последний ордер, и подсчет количества
int fHistory(){
   int loss = 0 ;
   for ( int i=OrdersHistoryTotal()- 1 ; i >= 0 ; i--){               // Выборка в истории
     if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== true ){     // Если есть следующий в истории
         if (OrderMagicNumber()!=magN) continue ;                 // Ордера не нашего эксперта

         if (OrderProfit() < 0 ) loss = loss++;                 // Если убыток по посл.ордеру - считаем
        
         if (OrderProfit() > 0 ) return (loss);                  // Если прибыль, вернем количество убыточных
     }
  }
   return (- 1 );
}
 

OrderProfit(), OrderType() 등을 사용하기 전에 OrderSelect 를 몇 번이나 호출해야 합니까? Start 내에서 한 번으로 충분합니까 아니면 OrderProfit, OrderType 등을 사용하기 전에 매번... OrderSelect를 호출해야 합니까 ??

그리고 OrderProfit 직전에 OrderSelect를 호출해야 하는지 아니면 처음에 아무데나 호출할 수 있는지 여부는 ??

 
hoz :

나는 질문을 썼고 아무도 눈치 채지 못했습니다. 나는 모든 사람들을 혼란스럽게하지 않기 위해 여기에 그렇게 긴 질문을 쓰고 싶지 않았습니다. 참고하세요...

https://www.mql5.com/ru/forum/142983

다음과 같이 시도하십시오.

 int OrderCloseCount( double ordOpPrice, datetime ordOpTime)
{
   // slippage= Взять из OrderSend
   int timePlusMinus= 20 ; // Пусть будет 20 сек.
   int count = 0 ;
  
   for ( int i = OrdersHistoryTotal() - 1 ; i >= 0 ; i--)
  {
     if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
       if (OrderSymbol() != Symbol ()) continue ;
           if ( MathAbs (OrderOpenPrice()-ordOpPrice) <= slippage* Point && MathAbs (OrderOpenTime()-ordOpTime))< timePlusMinus)
              count++;
  }
  
   return (count);
}

당신의 주문이 정확히 같은 가격에 정확히 같은 시간에 열렸다는 보장이 없기 때문입니다.

 
hoz :

나는 질문을 썼고 아무도 눈치 채지 못했습니다. 나는 모든 사람들을 혼란스럽게하지 않기 위해 여기에 그렇게 긴 질문을 쓰고 싶지 않았습니다. 참고하세요...

https://www.mql5.com/ru/forum/142983

나는 이미 그 스레드에서 대략적인 알고리즘을 작성했으며(여기서 약간의 뉘앙스를 고려하는 더 나은 이해를 위해 약간 수정했습니다) 정원을 울타리로 묶을 필요가 없습니다.


알고리즘은 도넛처럼 간단합니다.

부분 닫힘은 마법을 변경하지 않습니다. 티켓은 변경되지만 매직은 변경되지 않습니다.

열린 포즈가 있고 이 포즈가 부분적으로 닫혀야 하는 수준이 있습니다.

레벨 1, 레벨 2, 레벨 3을 가정해 봅시다.

매수 포지션이 이익이고 Bid >= Level1 && Bid< Level2 ---> 포지션의 첫 번째 부분을 마감하는 경우(나머지 로트가 최소값보다 작지 않은 경우 이 포지션의 로트보다 훨씬 적은 금액으로) 많은), 다음:

Bid >= Level2 && Bid< Level3 ---> 포지션의 두 번째 부분을 마감하는 경우(나머지 로트가 최소 로트보다 작지 않은 경우 이 포지션의 로트보다 로트가 작음):

Bid >= Level3 && Bid<Level4 ---> 포지션의 세 번째 부분을 마감하는 경우(나머지 로트가 최소 로트보다 작지 않은 경우 이 포지션의 로트보다 로트가 적음):

1. Bid>=LevelX 수준에서 부분 청산 후 최소 로트 미만이 된 경우 ---> 전체 포지션 청산

2. Bid>=Level3 레벨에서 세 번째 클로징 후에도 여전히 위치가 있는 경우 레벨4를 극복한 후 나머지 포즈와 함께 트롤을 동반하거나 한 번에 모두 닫습니다.

그게 다야

Sell의 경우 Ask: Ask<=Level1 && Ask>Level2 ... 등을 보십시오. ...

우리는 모든 포즈를 순환하고, 인덱스별로 각각을 선택하고, 선택한 위치에 대한 레벨과 닫힌 로트를 계산하고 작업 알고리즘을 즐깁니다... :)

동시에 이러한 수준의 값을 Expert Advisor의 메모리(변수)에 저장할 필요가 없으므로 매우 편리합니다. 레벨에 대한 데이터 손실 - 즉석에서 각 위치에 대해 다시 계산합니다.

그리고 한 가지 더: 부분적으로 닫은 후에는 보호 스톱을 조이는 것을 잊지 마십시오. 레벨 1에서 종가 후 - 손익분기점에서 정지, 레벨 2에서 종료 후 - 레벨 1에서 정지, 레벨 3에서 종료 후 - 레벨 2에서 정지 등 ...


 
안녕하세요! 사용자 지정 지표 를 사용하는 Expert Advisor의 예가 있는 사람이 있습니까?
 
dimarik0000 :
안녕하세요! 사용자 지정 지표를 사용하는 Expert Advisor의 예가 있는 사람이 있습니까?
뭐가 문제 야?
 
artmedia70 :
뭐가 문제 야?


사용자 지정 지표를 EA 코드로 전송하는 방법 에 대한 기사를 읽고 혼란스러워 했습니다. 그만한 가치가 있습니까? 아니면 코드에서 특정 지표 매개변수를 지정하는 것으로 충분합니까?
 
dimarik0000 :

사용자 지정 지표를 EA 코드로 전송하는 방법에 대한 기사를 읽고 혼란스러워 했습니다. 그만한 가치가 있습니까? 아니면 코드에서 특정 지표 매개변수를 지정하는 것으로 충분합니까?
경험이 거의 없다면 iCustom() 을 사용 하거나 인듀서의 논리를 전문가에게 밀어넣기 전에 인듀서의 원리를 철저히 연구하고 이해하는 것이 좋습니다.
 

713
2013년 1월 15일 12 시 10분

수수께끼 하나를 풀 수 있나요: 왜, 내가 이 함수를 조건에 삽입했을 때 || isCloseLastPosByTake() == 참 || 테스터의 전문가는 속도가 많이 느려지기 시작했는데, 10배!? 이것은 상호 배타적인 4가지 조건 중 하나이므로 코드를 더 빠르게 실행하기 위해 합산 조건과 마찬가지로 if와 연결할 수 없습니다. 당신은 나에게 무엇을 조언할 수 있습니까? 조언에 미리 감사드립니다!