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

 
Frostr :



어떤 이유로 테스트 할 때 주신 어드바이저가 저를 위해 한 번에 500-800 개의 위치를 열었습니다. 열린 위치의 수를 결정하는 것이 무엇인지 이해하지 못하고 조절할 수 없습니다 ((

오픈 포지션의 수를 줄이는데 도움이 되고, Lot만 늘리면 됩니다. 전체적으로 많이 넣으면 1-3 포지션이 열립니다.

최소 Lot을 설정하면 한 번에 500-1500개의 포지션이 열립니다.

1. 동시에 개설된 주문의 수에 대한 제한을 입력합니다.

2. 로트가 크게 증가함에 따라 자금 부족으로 인해 추가 포지션 오픈 이 불가능합니다.

 
Frostr :



어떤 이유로 테스트 할 때 주신 어드바이저가 저를 위해 한 번에 500-800 개의 위치를 열었습니다. 열린 위치의 수를 결정하는 것이 무엇인지 이해하지 못하고 조절할 수 없습니다 ((

오픈 포지션 수를 줄이는데 도움이 되고, Lot만 늘리면 되고, 전체적으로 많이 넣으면 1-3 포지션이 열립니다.

최소 Lot을 설정하면 한 번에 500-1500개의 포지션이 열립니다.

파일:
 
rigonich :


 

내 Expert Advisor에 대한 후행과 같은 것을 작성했지만 작동하지 않습니다. 작업을 시작하기 위해 변경하려는 항목에 따라 수정하는 동안 오류 1이 발생하거나 첫 번째 것보다 더 진행되지 않습니다. 인쇄 ( 인쇄 ( "우리는 매수 포지션을 실행 중입니다" ); ).. 이유가 무엇인지, 모든 제안에 기꺼이 응하겠습니다. 미리 감사드립니다!

 bool TrailingStop()
   {
   int MD0=MarketInfo( Symbol (),MODE_STOPLEVEL);
   if ((OrderMagicNumber()== 11111 )== true )
      {
       Print ( "Ведём позицию Buy" );
       while (OrderCloseTime()== 0 )
         {
         if (( NormalizeDouble (Bid-OrderStopLoss()+StepStop* Point , Digits )> NormalizeDouble (StopLevel* Point , Digits ))&&( NormalizeDouble (MD0, Digits )< NormalizeDouble (StopLevel* Point , Digits )))
               {
               RefreshRates();
               Print ( "текущий бид-" ,Bid, ", текущий стоп-" ,OrderStopLoss(), ", текуйщий тейк-" ,OrderTakeProfit(), ", цена открытия-" ,OrderOpenPrice(), ", расстояние от текущего стопа до текущего бида-" , NormalizeDouble (Bid-OrderStopLoss(), Digits ), ", новый стоп-" , NormalizeDouble (Bid-StopLevel* Point , Digits ));
               if (OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Bid-StopLevel* Point , Digits ),OrderTakeProfit(), 0 )== true )
                   Print ( "Stop Loss ордера с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ", успешно изменён на " ,OrderStopLoss());
               else Print ( "Не удалось переместить уровень Stop Loss ордера с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ". Ошибка " , GetLastError ());
               }
         Sleep ( 1000 );
         }
       if (OrderCloseTime()> 0 )
         {
         Print ( "Ордер с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ", закрыт по цене " ,OrderClosePrice(), ", с прибылью/убытком " ,OrderProfit());
         return ( true );
         }
      }
   else
      {
       if ((OrderMagicNumber()== 22222 )== true )
         {
         Print ( "Ведём позицию Sell" );
         while (OrderCloseTime()== 0 )
            {
             if (( NormalizeDouble (OrderStopLoss()+StepStop* Point -Ask, Digits )> NormalizeDouble (StopLevel* Point , Digits ))&&( NormalizeDouble (MD0, Digits )< NormalizeDouble (StopLevel* Point , Digits )))
               {
               RefreshRates();
               Print ( "текущий бид-" ,Ask, ", текущий стоп-" ,OrderStopLoss(), ", текуйщий тейк-" ,OrderTakeProfit(), ", цена открытия-" ,OrderOpenPrice(), ", расстояние от текущего стопа до текущего бида-" , NormalizeDouble (OrderStopLoss()-Ask, Digits ), ", новый стоп-" , NormalizeDouble (Ask+StopLevel* Point , Digits ));
               if (OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Ask+StopLevel* Point , Digits ),OrderTakeProfit(), 0 )== true )
                   Print ( "Stop Loss ордера с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ", успешно изменён на " ,OrderStopLoss());
               else Print ( "Не удалось переместить уровень Stop Loss ордера с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ". Ошибка " , GetLastError ());
               }
             Sleep ( 1000 );
            }
         if (OrderCloseTime()> 0 )
            {
             Print ( "Ордер с номером " , OrderTicket(), ", и магическим числом " ,OrderMagicNumber(), ", закрыт по цене " ,OrderClosePrice(), ", с прибылью/убытком " ,OrderProfit());
             return ( true );
            }
         }
       else return ( false );
      }
   }
 
Ekburg :

내 Expert Advisor에 대한 후행과 같은 것을 작성했지만 작동하지 않습니다. 작업을 시작하기 위해 변경하려는 항목에 따라 수정하는 동안 오류 1이 발생하거나 첫 번째 것보다 더 진행되지 않습니다. 인쇄 ( 인쇄 ( "우리는 매수 포지션을 실행 중입니다" ); ).. 이유가 무엇인지, 모든 제안에 기꺼이 응하겠습니다. 미리 감사드립니다!


귀하의 while 조건(OrderCloseTime()== 0 ). 이 주기를 입력하면 주문이 종료되거나 주기에 없는 brek 또는 return 문이 발생할 때까지 수정 시도가 반복됩니다.

미안, 망했어. 그들은., 그러나 안경이 없으면 나는 즉시 눈치 채지 못했습니다. 추가 괄호를 제거하고 종료를 추가했습니다. 시도해보십시오. 작동할 수 있습니다.

파일:
0101.mq4  3 kb
 
Ekburg :

내 Expert Advisor에 대한 후행과 같은 것을 작성했지만 작동하지 않습니다. 작업을 시작하기 위해 변경하려는 항목에 따라 수정하는 동안 오류 1이 발생하거나 첫 번째 것보다 더 진행되지 않습니다. 인쇄 ( 인쇄 ( "우리는 매수 포지션을 실행 중입니다" ); ).. 이유가 무엇인지, 모든 제안에 기꺼이 응하겠습니다. 미리 감사드립니다!

관심을 끌기 위해 이것이 어떻게 작동하는지 알려주십시오 - 고문에서 "후행과 같은 것" ??? 내 가정에 따르면 코드가 중단되어야 합니다. 진짜 뭐야??? 하나 이상의 주문이 열렸습니다???
 
TarasBY :
관심을 끌기 위해 이것이 어떻게 작동하는지 알려주십시오 - 고문에서 "후행과 같은 것" ??? 내 가정에 따르면 코드가 중단되어야 합니다. 진짜 뭐야??? 하나 이상의 주문이 열렸습니다???


음.. 왜 얼어야 해?!

후행 자체는 이익이 나타난 후 현재 스탑을 끌어 올리기 시작합니다. 손실 영역에서도 스탑을 끌어 올리도록 했습니다.

매우 간단하게 작동합니다. 터미널 후행과 동일한 원칙에 따라 손실과 가격 간의 차이가 후행 수준보다 커지면 주문이 수정되고 새로운 손절매 값이 수락된 후 잠시 휴면합니다. , 빈번한 요청이 없도록(여전히 후행 옵션을 정상적으로 테스트할 수 없기 때문에 이 시간을 잠시 사용했습니다) 필요한 조건이 발생하지 않은 경우 발생하기를 기다리면 이 모든 일이 발생합니다. 주문이 마감되고 마감 시간이 0보다 커질 때까지 사이클 조건이 실행되지 않고 함수가 작업을 완료하고 true를 반환합니다.

 
Ekburg :


음.. 왜 얼어야 해?!

후행 자체는 이익이 나타난 후 현재 스탑을 끌어 올리기 시작합니다. 손실 영역에서도 스탑을 끌어 올리도록 했습니다.

매우 간단하게 작동합니다. 터미널 후행과 동일한 원칙에 따라 손실과 가격 간의 차이가 후행 수준보다 커지면 주문이 수정되고 새로운 손절매 값이 수락된 후 잠시 휴면합니다. , 빈번한 요청이 없도록(여전히 후행 옵션을 정상적으로 테스트할 수 없기 때문에 이 시간을 잠시 사용했습니다) 필요한 조건이 발생하지 않은 경우 발생하기를 기다리면 이 모든 일이 발생합니다 . 주문이 마감되고 마감 시간이 0보다 커질 때까지 주기 조건이 실행되지 않고 함수가 작업을 완료하고 true를 반환합니다.

코드는 종료 조건에 의해 주기에 진입했습니다 - StopLoss로 주문을 마감합니다. 그리고 얼마나 걸립니까(가격이 SL 수준에 도달하기까지)??? 밀리초도 아니고 1초도 아니고 1분도 아닐 가능성이 큽니다?! 축하합니다 - MQL4 코딩에서 "새로운 단계"를 이루셨습니다!!!

추신 아니면 제가 틀렸고 당신은 테스터를 위한 고급 코드 작성자일 뿐입니다! :)))

 
스크린샷과 상태를 위한 좋은 프리웨어 FTP 서버를 알려주고 1년 후에도 다운되지 않도록 ... 일부처럼
 
TarasBY :

코드는 종료 조건에 의해 주기에 진입했습니다 - StopLoss로 주문을 마감합니다. 그리고 얼마나 걸립니까(가격이 SL 수준에 도달하기까지)??? 아마 밀리초도 아니고 1초도 아니지만 1분도 아닐 가능성이 큽니다?! 축하합니다 - MQL4 코딩에서 "새로운 단계"를 이루셨습니다!!!

추신 아니면 제가 틀렸고 당신은 테스터를 위한 고급 코드 작성자일 뿐입니다! :)))



모든 사람이 모든 것을 알고 있다면 일반적으로 이 스레드와 포럼이 필요한 이유는 무엇입니까?