[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 1070

 
dzhini :
하지만 작동하지 않습니다 :(
그래서 다른 곳에서는 작동하지 않거나 뭔가를 놓쳤습니다.
 
Reshetov :
그래서 다른 곳에서는 작동하지 않거나 뭔가를 놓쳤습니다.
문을 두드려도 될까요?
 
dzhini :
문을 두드려도 될까요?
니자. PM은 개인적인 소통을 위한 것입니다. 그리고 코드의 오류는 공개적으로 논의되어 다른 사람들이 같은 레이크를 밟지 않도록 해야 합니다. 그렇지 않으면 누군가가 이미 만들어진 솔루션에 대한 링크를 공유할 수 있습니다.
 

안녕하세요. 다음은 실패한 간단한 코드입니다. 그 이유를 스스로 알 수가 없습니다.

첫 번째 주문이 열리고 수정됩니다. 두 번째가 열리고... 수정되지 않습니다. 배수될 때까지 유지합니다.

로그에는 다음과 같습니다.

"01:23:22 MarkTrade 테스트 시작

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: 1.3965 ok에서 1.00 EURUSD 매수 1위 오픈

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: 수정 #1 매수 1.00 EURUSD에서 1.3965 sl: 1.3935 tp: 0.0000 확인

01:23:22 2010.01.29 00:28 테스터: 손절매 #1 at 1.3935 (1.3935 / 1.3937)

01:23:22 2010.02.01 00:00 MarkTrade EURUSD,H1: 오픈 #2 1.3877 ok에서 1.00 EURUSD 매수

01:23:22 2010.05.05 13:17 MarkTrade: Stop Out으로 인해 중지됨

01:23:22 2010.05.05 13:17 테스터: 2번 주문 마감

추가됨 내 실수가 있어! OrderSend는 부울이 아닌 값을 반환합니다!

 int start()
  {
   int total=OrdersTotal();
   if (total== 0 )
   {
       if (TimeHour(TimeCurrent())== 00 &&TimeMinute(TimeCurrent())== 00 )
      {
      Buy();
      }
   }
return ( 0 );
  }
/// /// /// /// /// /// /// /// //
void Buy()
 {
 RefreshRates();
 if (OrderSend(Symbol(), OP_BUY, 1 , NormalizeDouble(Ask,Digits), 0 , 0 , 0 , "" , 123321 , 0 ,Blue)== true )
         {
           Modify();
         }
 }
/// /// /// /// /// /// /// /// /// //
void Modify()
 {
     int total = OrdersTotal();
       for ( int i=total- 1 ;i>= 0 ;i--)
       {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if (OrderModify (OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble( 30 *Point,Digits),OrderTakeProfit(), 0 ,CLR_NONE)== false ) Modify();
       }
 }
 

좋은 시간

다른 리프레임에서 작동하는 테스터를 만드는 방법.

그리고 역사를 달리다.

 

좋은 아침 !

명확히 해주세요. Expert Advisor를 최적화할 때 유전자 알고리즘을 켠 상태에서 다른 TP를 설정하면 예를 들어 TP=400으로 설정하면 1부터 400까지 단계적으로 최적화한다는 의미에서 다른 결과가 나오는 것으로 밝혀졌다. 그런 다음 350을 설정합니다. TP=50이 될 때까지 1에서 350까지 단계적으로 최적화합니다. 따라서 TP = 400에서만 실행하면 TP가 낮고 더 좋은 결과가 "누락"됩니다 ! 유전자 때문인가? (기사 https://www.mql5.com/en/articles/1347 (작성: 2009 년 12월 25일 작성자: Rider) 은 다음과 같이 말합니다. " ... 유전학은 물론 유용한 것이지만 합리적인 한계 내에서 문제는 그녀의 알고리즘이 잔인한 농담을 할 수 있다는 것입니다. 그녀의 관점에서 일부 승리, 매개변수 집합이 결정되고 모든 추가 최적화가 끝까지 "주변에서" 이루어집니다. , 작동할 것입니다. 최적화 영역을 벗어나면 "오버보드" 상태로 남아 "최적화 결과" 테이블에 포함되지 않습니다.

여기에는 여러 개의 출구가 있습니다. 하나의 추기경은 최적화에서 유전자 알고리즘의 사용을 포기하는 것입니다. 그러나 이것이 항상 적합한 것은 아닙니다. 다음 두 개는 절반 측정값이지만 최소한 다음과 같습니다.

- 한 번이 아니라 두 번 이상 최적화합니다. 처음에는 "Balance"로, 다음은 "Maximal Drawdown" 또는 다른 것으로... ") 매개변수" 등을 예로 들 수 있습니다. ?

 
eddy :

루프가 깨지지 않는 이유는 무엇입니까?

Break in your case는 조건이 충족될 때만 루프를 중단하고 작동합니다. 조건이 충족되지 않으면 루프가 무한대가 됩니다. 이렇게 시도하십시오.

 int sec=Seconds();
       while (true) 
        { if (sec!=Seconds())          // new sec
          { int ms= GetTickCount (); }
       break ;
        }
 
volshebnik :

break in your case는 조건이 충족될 때만 작동합니다.

이것이 필요한 것입니다. 왜냐하면 if()에 있기 때문입니다.
 
안녕하세요! 터미널 에서 기호의 속성 을 변경하는 방법은 무엇입니까? 최소 정지 레벨이 300이라고 씁니다. 어드바이저를 테스트할 수 없습니다.
 
찬성

예를 들어, 스프레드를 변경하기 위해 TakeMySpread 프로그램이 있으며 다른 조건 에서 어드바이저를 테스트하기 위해 "스톱 레벨" 을 변경할 수 있는 방법 또는 사용 방법이 있습니다. 돕다!