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

 
novichok2018 :

예, 감사합니다. 페이지를 읽었습니다. MKL4에 대한 나의 지식만으로는 내 사이클에서 위치가 0에서 마지막으로 이동하고 예에서는 반대로 마지막에서 0으로 이동한다는 것을 알아차리기에 충분했습니다. 그리고 중단하고 이해하지 못했습니다. 그리고 내가 내 흉상을 반대로 바꾸었을 때, 포지션은 전혀 닫히지 않았습니다 .

포지션을 청산할 때 포지션에 공백이 없도록 사이클을 역전시켜야 합니다. 이 루프에서는 break 문이 필요하지 않습니다. 이것은 루프를 중단하고 본문에서 종료하는 것입니다. 루프의 다음 반복으로의 전환도 필요합니다.

그리고 그것이 당신을 위해 닫히지 않는 이유와 당신이 이것을 위해 한 일 - 당신만이 압니다.

 
Artyom Trishkin :

포지션을 청산할 때 포지션에 공백이 없도록 사이클을 역전시켜야 합니다. 이 루프에서는 break 문이 필요하지 않습니다. 이것은 루프를 중단하고 본문에서 종료하는 것입니다. 루프의 다음 반복으로의 전환도 필요합니다.

그리고 그것이 당신을 위해 닫히지 않는 이유와 당신이 이것을 위해 무엇을 했는지 - 당신만이 압니다.


지시대로 정확히 수행했습니다. 수정된 코드는 다음과 같습니다.

 void ClosePoz()
  { int total= OrdersTotal ();
   if (total> 0 )
   {
       for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
      {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
         { double WPR0 = iWPR ( NULL , PERIOD_M5 ,bars, 0 );
         if ( OrderType ()== OP_BUY && MathAbs (WPR0)> 80 )
           OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble ( MarketInfo ( OrderSymbol (), MODE_BID ), int ( MarketInfo ( OrderSymbol (), MODE_DIGITS ))),slippage, clrNONE );                  
         }
         continue ;
      }
    } 
  } 
  

이제 두 위치를 모두 닫지만 하나는 닫지 않고 두 번째 위치를 기다립니다. 매드하우스. ClosePoz() 함수를 잘못된 위치에 삽입하고 있는 것은 아닐까 하는 생각이 들어 여러 옵션을 섞었습니다. 결과는 0입니다. 도움을 청하는 영혼의 외침. 아무도 문제를 해결할 수 없다는 것은 아닙니다.

 

초기 계정($100)을 현금화하는 방법은 무엇입니까?

 
novichok2018 :

지시대로 정확히 수행했습니다. 수정된 코드는 다음과 같습니다.

이제 두 위치를 모두 닫지만 하나는 닫지 않고 두 번째 위치를 기다립니다. 매드하우스. ClosePoz() 함수를 잘못된 위치에 삽입하고 있는 것은 아닐까 하는 생각이 들어 여러 옵션을 섞었습니다. 결과는 0입니다. 도움을 청하는 영혼의 외침. 아무도 문제를 해결할 수 없다는 것은 아닙니다.

잘 모르겠어. 무릎에 그렸습니다. 물론, 나는 확인할 수 없습니다-당신의 조건이 충분하지 않으므로-자신

 //+------------------------------------------------------------------+
void ClosePoz( const string symbol_name, const int magic_number, const double wpr_buy, const double wpr_sell)
  { 
   int total= OrdersTotal ();
   for ( int i=total- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS ))
        {
         ENUM_ORDER_TYPE type= OrderType ();
         if (type> ORDER_TYPE_SELL )               continue ;
         if ( OrderMagicNumber ()!=magic_number)   continue ;
         if ( OrderSymbol ()!=symbol_name)         continue ;
         int digits=( int ) SymbolInfoInteger ( OrderSymbol (), SYMBOL_DIGITS );
         if (type== ORDER_TYPE_BUY )
           {
             double close_price= SymbolInfoDouble ( OrderSymbol (), SYMBOL_BID );
             if ( iWPR ( NULL , PERIOD_M5 ,bars, 0 ))>wpr_buy)
              {
               ResetLastError ();
               if (! OrderClose ( OrderTicket (), OrderLots (),close_price,slippage, clrNONE );
                   Print ( __FUNCTION__ " > Позиция Buy #" , OrderTicket (), " не закрыта. Ошибка: " , GetLastError ());
              }
           }                
         else
           {
             double close_price= SymbolInfoDouble ( OrderSymbol (), SYMBOL_ASK );
             if ( iWPR ( NULL , PERIOD_M5 ,bars, 0 ))<wpr_sell)
              {
               ResetLastError ();
               if (! OrderClose ( OrderTicket (), OrderLots (),close_price,slippage, clrNONE );
                   Print ( __FUNCTION__ " > Позиция Sell #" , OrderTicket (), " не закрыта. Ошибка: " , GetLastError ());
              }
           }                
        }
     }
  } 
//+------------------------------------------------------------------+
네, 그리고 체크 함수 내부의 WPR은 어떻게 든 정상이 아닙니다. WPR은 클로저 함수를 호출하기 위한 조건 중 하나여야 합니다.
 
내가 이해하는 한 보증금에서 로트 수를 수정하는 것은 불가능합니다.
 
igrok333 :
내가 이해하는 한 보증금에서 로트 수를 수정하는 것은 불가능합니다.

필요한 볼륨으로 하나 더 열면 됩니다.

 
Alekseu Fedotov :

필요한 볼륨으로 하나 더 열면 됩니다.

그러면 기존 항목을 삭제하고 새 항목을 추가하는 것이 더 쉽습니다. 결국 필요한 볼륨이 이미 설정된 것보다 많을 필요는 없습니다. 예, 하나의 주문을 따르는 것이 더 쉽습니다.

 

좋은 하루, 질문이 있습니다. 제가 이해한 방법을 설명하겠습니다.

양초의 맨 아래에 매수를 놓고 맨 위에 매도하는 어드바이저를 위한 서면 알고리즘이 있습니까?

그리고 그것을 고문에게 적용하는 방법은 무엇입니까?
 
iisvlg : 양초의 맨 아래에 매수를 놓고 맨 위에 매도하는 Expert Advisors에 대한 서면 알고리즘과 이를 Expert Advisor에 적용하는 방법이 있습니까?

그것은 좋은 것입니다!!!

 
iisvlg :

좋은 하루, 질문이 있습니다. 이해하는 방법을 설명하겠습니다.

양초의 맨 아래에 매수를 놓고 맨 위에 매도하는 어드바이저를 위한 서면 알고리즘이 있습니까?

그리고 그것을 고문에게 적용하는 방법은 무엇입니까?

BUY LIMIT를 Low로, SELL LIMIT를 High로 설정합니다.

알고리즘과 관련 하여 기반 을 파십시오.