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

 
그리고 한 가지 더 - 고문이 시작되면 그 순간에는 신호가 없었음에도 불구하고 첫 번째 촛불에서 하나의 주문이 열립니다. 어떻게 제거할 수 있습니까?
파일:
 
artem artem 개 주문은?

+ 여러 주문이 틱으로 표시되는 경우 시작 가격이 아닌 분명히 열렸습니다. 보여주는 스크린샷을 첨부했습니다

노력하다

파일:
artem.mq4  13 kb
 
이제 틱과 시가로 동일한 수의 주문을 엽니다. 같은 기간에 대한 총 주문 - 23개 주문. 이제서야 어떤 이유로 입구는 4 번째가 아니라 7 번째 촛불에서입니다.
 
artem artem 총 주문 - 23개 주문. 이제서야 어떤 이유로 입구는 4 번째가 아니라 7 번째 촛불에서입니다.

불필요한 모든 것을 제거했습니다 ... 정상적으로 작동하는 것 같습니다

파일:
artem.mq4  11 kb
 
터미널에서 어드바이저 설정 라인을 지울 수 없도록 구분하는 방법이 있습니까? 코드에 extern 문자열을 쓰면 라인을 편집할 수 있게 되며, 실수로 라인을 삭제했다면 "재설정"을 눌러 복원해야 하지만 모든 설정이 재설정됩니다. 물론 미리 설정된 파일로 저장할 수도 있지만 '석판'을 만들 수 있는지 궁금합니다.)
 

틱으로도, 시가로도 확인해보니... RA-BO-TA-ET!!!!

MakarFX , 정말 감사합니다!!! 나는 지금 2주 동안 이 퍼즐에 대해 걱정해 왔으며 오늘까지 모두 소용이 없었습니다. 다시 한 번 진심으로 감사드립니다! 몇 가지 설명이 남았고 더 이상 지체하지 않을 것이며 많은 시간이 낭비되었습니다. 실제로 관심 있는 내용은 다음과 같습니다.


1. 내가 아는 한 "확인 초"의 수를 변경하려면 상수에서 한 숫자를 다른 숫자로 변경하면됩니다. 그게 다인가요?

 void OnTick ()
  {
//---
   StopLevel = MarketInfo( Symbol (), MODE_STOPLEVEL); 
   //---
   if (newbar!=Time[ 0 ])
     {
       if (CheckForOpen()!=Start)
        {Start=CheckForOpen(); cnt= 1 ;}
       else
        {cnt+= 1 ;}
       //---
       if (cnt== 8 )
        {
         // Открытие ордера по методу Пуриа
         if (CheckForOpen()== 0 ) // Если сигнал для покупок 
           {
             if ( OrderSend ( Symbol (),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss* Point ,Ask+TakeProfit* Point , "" ,MagicNumber, 0 ,Blue))
              { Print ( "BUY OK" );}
               else { Print ( GetLastError ());}
           } 
         if (CheckForOpen()== 1 ) // Если сигнал для продаж 
           {
             if ( OrderSend ( Symbol (),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss* Point ,Bid-TakeProfit* Point , "" ,MagicNumber, 0 ,Red))
              { Print ( "SELL OK" );}
               else { Print ( GetLastError ());}
           }
        }   
      newbar=Time[ 0 ];
     }
  }

2. Expert Advisor가 시작되면 신호가 없음에도 불구하고 첫 번째 캔들에서 첫 번째 SELL 주문이 열립니다. 즉, 이 첫 번째 주문은 불필요합니다. 시작 시 고문은 단순히 고문이 방금 시작했기 때문에 첫 번째 주문에 대해 즉시 거래를 개시해서는 안 됩니다. 어떻게 해결할 수 있습니까? Init가 이에 대한 책임이 있다고 가정하고 "false"로 변경하거나 이 Init를 제거해야 합니까?

 bool OrderBuy = true , OrderSell = true , Order = false , Init = true ;

3. 그리고 마지막으로 - 모든 것을 그대로 두고 한 번에 여러 통화 쌍으로 거래를 시작하면 모든 것이 제대로 작동합니까? 또는 버그 등이 없도록 코드에 다른 것을 작성해야 합니다. , 특히 이 EA가 동시에 여러 통화 쌍에서 작동한다면?

사실, 이것이 내가 관심을 갖는 모든 것이지만 어쨌든 - 다시 한 번, 대단히 감사합니다! 내가 스스로 알아냈다면 x 얼마나 더 많은 시간이 갔을지)

 
artem artem # :

틱으로도, 시가로도 확인해보니... RA-BO-TA-ET!!!!

MakarFX , 정말 감사합니다!!! 나는 지금 2주 동안 이 퍼즐에 대해 걱정해 왔으며 오늘까지 모두 소용이 없었습니다. 다시 한 번 진심으로 감사드립니다! 몇 가지 설명이 남았고 더 이상 지체하지 않을 것이며 많은 시간이 낭비되었습니다. 실제로 관심 있는 내용은 다음과 같습니다.


1. 내가 아는 한 "확인 초"의 수를 변경하려면 상수에서 한 숫자를 다른 숫자로 변경하면됩니다. 그게 다인가요?

2. Expert Advisor가 시작되면 신호가 없음에도 불구하고 첫 번째 캔들에서 첫 번째 SELL 주문이 열립니다. 즉, 이 첫 번째 주문은 불필요합니다. 시작 시 고문은 단순히 고문이 방금 시작했기 때문에 첫 번째 주문에 대해 즉시 거래를 개시해서는 안 됩니다. 어떻게 해결할 수 있습니까? Init가 이에 대한 책임이 있다고 가정하고 "false"로 변경하거나 이 Init를 제거해야 합니까?

3. 그리고 마지막으로 - 모든 것을 그대로 두고 한 번에 여러 통화 쌍으로 거래를 시작하면 모든 것이 제대로 작동합니까? 또는 버그 등이 없도록 코드에 다른 것을 작성해야 합니다. , 특히 이 EA가 동시에 여러 통화 쌍에서 작동한다면?

사실, 이것이 내가 관심을 갖는 모든 것이지만 어쨌든 - 다시 한 번, 대단히 감사합니다! 내가 스스로 알아냈다면 x 얼마나 더 많은 시간이 갔을지)

1) 예, 이것은 "확인 초" 수 값입니다.

2) 아니오, 첫 번째에 열리지 않고 지정된 수의 "확인 양초" 후에만 열립니다.

3) 마법을 변경하고 모든 쌍에 베팅하십시오.

Magic은 외부 변수를 만드는 것이 좋습니다.

 
Ivan Butko # :
터미널에서 어드바이저 설정 라인을 지울 수 없도록 구분하는 방법이 있습니까? 코드에 extern 문자열을 쓰면 라인을 편집할 수 있게 되며, 실수로 라인을 삭제했다면 "재설정"을 눌러 복원해야 하지만 모든 설정이 재설정됩니다. 물론 미리 설정된 파일로 저장할 수도 있지만 '석판'을 만들 수 있는지 궁금합니다.)
ENUM 만들기
 
MakarFX # :
ENUM 만들기

노력하겠습니다 감사합니다

 
Ivan Butko # :

노력하겠습니다 감사합니다

 enum MODE
  {
   MODE_1= 1 ,     // Мертвая строка
  };
//--- input parameters
input MODE mode= MODE_1; // Эта строка
사유: