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

 
ifitstrue :

에 대한 질문

과거 H1에 추세선을 그려야 하는 경우 초기 막대 M1의 인덱스는 무엇입니까?

그리고 줄의 시작과 끝이 되었을 때 그것을 찾는 방법이 명확하지 않습니다.

명확하게 설명하지 않으면 죄송합니다.

나에게는 어렵다.

인덱스 외에도 시간이 있습니다 ...

 
//---
   for ( int j= 0 ;j< OrdersTotal ();j++)
     {
       if ( OrderSelect (j,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!=MAGICZZ || OrderSymbol()!= Symbol ()) continue ;
   //--- check order type 
       if (OrderType()==OP_BUY)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitB()=",OrderProfit());
         if ( iClose ( NULL , PERIOD_CURRENT , 1 )- iOpen ( NULL , PERIOD_CURRENT , 1 )> 0.0 )
           { if ( iOpen ( NULL , PERIOD_CURRENT , 0 )- iClose ( NULL , PERIOD_CURRENT , 0 )> 0.0 )
              { Print ( "iCloseB()=" , iClose ( NULL , PERIOD_CURRENT , 0 ));
               if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
                   Print ( "OrderClose error " , GetLastError ());
              }  
           }
        }
       if (OrderType()==OP_SELL)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitS()=",OrderProfit());
         if ( iOpen ( NULL , PERIOD_CURRENT , 1 )- iClose ( NULL , PERIOD_CURRENT , 1 )> 0.0 )
           { if ( iClose ( NULL , PERIOD_CURRENT , 0 )- iOpen ( NULL , PERIOD_CURRENT , 0 )> 0.0 )
              { Print ( "iCloseS()=" , iClose ( NULL , PERIOD_CURRENT , 0 ));
               if (!OrderClose(OrderTicket(),OrderLots(),Ask, 3 ,White))
                   Print ( "OrderClose error " , GetLastError ());
              }
           }
안녕하세요! 2021.03.01_19:49 GMT+3. 거래 시스템의 결과를 개선하고 싶었습니다. 그러나 iOpen() 및 iClose() 함수가 작동하지 않는 것 같습니다. 전략 테스터에서 175개 거래 중 체크아웃된 EA는 81번째 거래만 위의 코드에 설명된 조건에 따라 마감된 것으로 보입니다. 이 코드는 작동하지 않습니다. 그것을 작동시키기 위해 무엇을 할 수 있습니까? MetaQuotes 프로그래머에게 문의하시겠습니까? 이제 나는 전략 테스터의 로그를 보고 이러한 기능이 얼마나 드물게 작동하는지 게시할 것입니다. ... 설립하다. 20210228.log. 시간 13:53:02.192, #155 열기, iCloseB()=1.3434. 로그 파일을 첨부합니다. 이제 누군가가 이 iClose() 및 iOpen() 함수를 사용하여 작동하도록 하는 방법을 알려 주기를 바랍니다. 그리고 거래 시스템은 충분히 효율적이지 않습니다. 모든 동안. 2021.03.01_20:12 GMT+3.
파일:
20210228.log  277 kb
 
MT5에서는 특정 시간 프레임에 이미 새 막대가 나타날 시간이 되었지만(따옴표가 계속 표시되는 것처럼 보이지만) 여전히 존재하지 않는 경우가 있습니다. 그것은 무엇입니까? 가격 정보?
 
ifitstrue :

에 대한 질문

과거 H1에 추세선을 그려야 하는 경우 초기 막대 M1의 인덱스는 무엇입니까?

그리고 줄의 시작과 끝이 되었을 때 그것을 찾는 방법이 명확하지 않습니다.

명확하게 설명하지 않으면 죄송합니다.

나에게는 어렵다.

H1에는 바 여는 시간 이 있습니다. iTime()입니다.

M1의 이 시간에 대한 막대 인덱스를 이해하려면 iBarShift()가 있습니다.

iHighest() 및 iLowest()를 사용하여 M1의 최소 및 최대 막대를 찾아야 합니다.

 
다시 안녕! 2021.03.01_20:24 GMT+3. 나는 1304페이지의 이 포럼 스레드에서 네 번째 버전의 전략 테스터가 나를 위해 느리게 작동하고 있다고 썼습니다. 그리고 Vitaly Muzichenko는 나를 오해했습니다. 댓글 작성이 끝나면 시간을 씁니다. 그리고 나는 누구에게도 서두르지 않습니다. 내 질문에 대한 답은 없었지만 우연히 답을 찾았습니다. 지금 전략 테스터로 무엇을 하고 있습니까? 어드바이저를 테스트하기 전에 "최적화" 상자를 선택합니다. 최적화합니다. 아직 최적화가 필요하지는 않지만. 최적화에는 약 1초가 걸립니다. 그런 다음 "최적화"를 선택 취소합니다. 그런 다음 어드바이저가 어떻게 작동하는지 확인합니다. 그러면 전략 테스터가 빠르게 작동합니다. 40분도 아니고 1시간도 아닙니다. 나는 이것을 쓰는 것이 나의 의무라고 느꼈다. 누군가가 도움이 될 것입니다. 그리고 제 브로커가 터미널의 4번째 버전에는 루블 계정이 있지만 5번째 버전에는 없기 때문에 터미널의 4번째 버전에 어드바이저를 쓰고 있습니다. 나는 미국 달러를 엉망으로 만들고 싶지 않습니다. 미국 달러에는 엄청난 공공 부채 한도가 있고 제 중개인은 비시장 환율로 제 달러를 제 루블로 변환합니다. 모든 동안. 20:39 GMT+3.
 
Николай Никитюк :
안녕하세요! 2021.03.01_19:49 GMT+3. 거래 시스템의 결과를 개선하고 싶었습니다. 그러나 iOpen() 및 iClose() 함수가 작동하지 않는 것 같습니다. 전략 테스터에서 175개 거래 중 체크아웃된 EA는 81번째 거래만 위의 코드에 설명된 조건에 따라 마감된 것으로 보입니다. 이 코드는 작동하지 않습니다. 그것을 작동시키기 위해 무엇을 할 수 있습니까? MetaQuotes 프로그래머에게 문의하시겠습니까? 이제 나는 전략 테스터의 로그를 보고 이러한 기능이 얼마나 드물게 작동하는지 게시할 것입니다. ... 설립하다. 20210228.log. 시간 13:53:02.192, #155 열기, iCloseB()=1.3434. 로그 파일을 첨부합니다. 이제 누군가가 이 iClose() 및 iOpen() 함수를 사용하여 작동하도록 하는 방법을 알려 주기를 바랍니다. 그리고 거래 시스템은 충분히 효율적이지 않습니다. 모든 동안. 2021.03.01_20:12 GMT+3.

코드로 모든 것이 괜찮은 것 같지만 미끄러짐이 나를 혼란스럽게합니다 ... 매우 작습니다. 미끄러짐 을 더 넣고 확인하십시오.

 
Alexey Viktorov :
좋은 신! 내가 뭔가를 원했나? 내가 뭔가를 요구 했습니까? 누구를 위해 나를 데려가나요?
틀렸습니다. 죄송합니다. 그쪽으로도 거기에도 없습니다. )
 
Николай Никитюк :
안녕하세요! 2021.03.01_19:49 GMT+3. 거래 시스템의 결과를 개선하고 싶었습니다. 그러나 iOpen() 및 iClose() 함수가 작동하지 않는 것 같습니다. 전략 테스터에서 175개 거래 중 체크아웃된 EA는 81번째 거래만 위의 코드에 설명된 조건에 따라 마감된 것으로 보입니다. 이 코드는 작동하지 않습니다. 그것을 작동시키기 위해 무엇을 할 수 있습니까? MetaQuotes 프로그래머에게 문의하시겠습니까? 이제 나는 전략 테스터의 로그를 보고 이러한 기능이 얼마나 드물게 작동하는지 게시할 것입니다. ... 설립하다. 20210228.log. 시간 13:53:02.192, #155 열기, iCloseB()=1.3434. 로그 파일을 첨부합니다. 이제 누군가가 이 iClose() 및 iOpen() 함수를 사용하여 작동하도록 하는 방법을 알려 주기를 바랍니다. 그리고 거래 시스템은 충분히 효율적이지 않습니다. 모든 동안. 2021.03.01_20:12 GMT+3.

같은 내용이기 때문에 이렇게 다시 작성해 보세요.

         if (Close[ 1 ]-Open[ 1 ]> 0.0 )
           {
             if (Close[ 0 ]-Open[ 0 ]> 0.0 )

또는 그래서 나는 씁니다

         if (Close[ 1 ]>Open[ 1 ])
           {
             if (Close[ 0 ]>Open[ 0 ])
              {
 
klub2003 :

안녕하세요!

그러한 작업:
가격이 MA를 하향 또는 상향 교차합니다.
합격 점수를 계산할 때 더 많이 사용하려면 기억해야 합니다.

내가 이해하는 방법은 다음과 같습니다.

이중 FixPrice; // 변수

bool 수정=거짓; // 마커

if ( 수정==거짓) {

if ( Close[0] > MA_lo ) FixPrice = Close[0];
} // 가격이 MA를 넘을 때까지 측정

if ( Close[0] < MA_lo ) Fix=true;

if ( Fix==true) FixPrice_L = FixPrice ;

그리고 여기에 플러그가 있습니다 - 가격은 기억되지 않습니다!

도움을 주시면 대단히 감사하겠습니다!
 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//---

double      FixPrice;         // переменная ТАК БУДЕТ ЗАПОМИНАТЬСЯ. ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ
bool        Fix = false ;       // маркер
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (Fix == false )
     {
       if (Close[ 0 ] > MA_lo)
         FixPrice = Close[ 0 ];
     }                                                                               // делаем замер пока цена не пересечет МА
   if (Close[ 0 ] < MA_lo)
      Fix = true ;
   if (Fix == true )
      FixPrice_L = FixPrice ;
//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+

값이 기억되기를 원하는 방식입니다.

그러나 촛불이 열릴 때

Close[0]=Open[0] 
и Close[0]=High [0] и Close[0]=Low[0]



따라서 인스턴트가 필요한 경우 실시간을 사용하는 것이 좋습니다.

 double Bidd= NormalizeDouble (Bid, Digits ); если цена сверху или
double Askk= NormalizeDouble (Askk, Digits ); если цена снизу МА

double MA_lo= NormalizeDouble (MA_lo, Digits );

놀라지 않도록 비교할 모든 가격을 정상화하는 것이 좋습니다. :)

 
마카르FX :

FIBO 스왑 p1과 p2를 뒤집으려면

경고(

마카르FX :

FIBO 스왑 p1과 p2를 뒤집으려면

경고(

안녕하세요, 감사합니다. 두 가지 다른 솔루션이 있습니다. 귀하의 솔루션이 가장 쉬운 것입니다 ....