조언자, 지표를 마무리하는 데 도움이 될 것입니다. - 페이지 5

 
Natalya Dzerzhinskaya :
다른 TF에서 핀바를 식별하는 방법은 무엇입니까?

그렇게 정의하는 것이 좋습니다))

 extern int TF = 60//Тайм фрейм на котором определяем пинбары
//---
bool PinbarLong, PinbarShort;
//---
int start() {    

      PinbarLong  = MathMin ( iOpen ( Symbol (), TF, 1 ), iClose ( Symbol (), TF, 1 ))- iLow ( Symbol (), TF, 1 )
                    >= ( iHigh ( Symbol (), TF, 1 )- iLow ( Symbol (), TF, 1 ))* 0.75 ;           

      PinbarShort = iHigh ( Symbol (), TF, 1 )- MathMax ( iOpen ( Symbol (), TF, 1 ), iClose ( Symbol (), TF, 1 ))
                    >= ( iHigh ( Symbol (), TF, 1 )- iLow ( Symbol (), TF, 1 ))* 0.75 ;  

     if (PinbarLong) действие для buy;
     if (PinbarShort) действие для sell;

return ( 0 );} //StartEnd
[삭제]  
FXwin :

그렇게 정의하는 것이 좋습니다))

좋은 선택!! 감사해요))

 
Natalya Dzerzhinskaya :

좋은 선택!! 감사해요))

저자의 허락을 받아 크로스 플랫폼 기능을 게시합니다

 //===============================================================================================
//---------------------------------- Функция находит Пин-бар -----------------------------------+
//===============================================================================================
MqlRates _rates[ 1 ];
int GetPinBar( string symb= "0" , ENUM_TIMEFRAMES tf= 0 , double kf= 0.75 ) {
 if (symb== "0" ) symb= Symbol ();
   double open1= 0 ,high1= 0 ,low1= 0 ,close1= 0 ;
   CopyRates (symb,tf, 1 , 1 ,_rates);
   open1=rates[ 0 ].open;
   high1=rates[ 0 ].high;
   low1=rates[ 0 ].low;
   close1=rates[ 0 ].close;
     if ( MathMin (open1,close1)-low1 >=(high1-low1)*kf) return ( 1 );
     if (high1- MathMax (open1,close1)>=(high1-low1)*kf) return ( 2 );
   return ( 0 );
 }
 
Vitaly Muzichenko :

저자의 허락을 받아 크로스 플랫폼 기능을 게시합니다

나는 단지 "FOR"참여입니다))

 
안녕하세요! 로봇 설정을 도와주세요. 닫기 시간을 추가했는데 작동하지 않습니다.
파일:
0j1_uhskn.mq4  14 kb
 
Romal001 :
닫기 시간을 추가했는데 작동하지 않습니다.

시간이 추가되었지만 닫기 프로세스 자체는 추가되지 않았습니다))


 
int BuyOrders()
 {
   int co,t;
   for (co= 0 ; co< OrdersTotal (); co++)
   {
     if ( OrderSelect (co, SELECT_BY_POS ))
     if ( OrderSymbol ()== Symbol ())
       if ( OrderMagicNumber ()==Magik)
       {
         if ( OrderType ()== OP_BUY ) t++;
       }
   }
   return (t); 
 }

int SellOrders()
 {
   int cp,t;
   for (cp= 0 ; cp< OrdersTotal (); cp++)
   {
     if ( OrderSelect (cp, SELECT_BY_POS ))
     if ( OrderSymbol ()== Symbol ())
       if ( OrderMagicNumber ()==Magik)
       {
         if ( OrderType ()== OP_SELL ) t++;
       }
   }
   return (t); 
 }
 
void CloseSell()
 {
   int t;
   while (SellOrders()> 0 )
   {
     for ( int c= 0 ; c<= OrdersTotal ();c++)
     {
       if ( OrderSelect (c, SELECT_BY_POS , MODE_TRADES ))
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magik) //
        {              
         if ( OrderType ()== OP_SELL )
          {
           for (t= 0 ; t<= 5 ; t++)
            {
             RefreshRates ();
             int ticket= OrderClose ( OrderTicket (), OrderLots (), Ask , 10 ,Red);
             int e= GetLastError ();
             if (e== 0 ) break ; else Print ( "error close Sell : " +e);
            }
          }
        }
     }
   }
   return ;
 }

void CloseBuy()
 {
   int t;
   while (BuyOrders()> 0 )
   {
     for ( int c= 0 ; c<= OrdersTotal ();c++)
     {
       if ( OrderSelect (c, SELECT_BY_POS , MODE_TRADES ))
       if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()==Magik) //
        {              
         if ( OrderType ()== OP_BUY )
          {
           for (t= 0 ; t<= 5 ; t++)
            {
             RefreshRates ();
             int ticket= OrderClose ( OrderTicket (), OrderLots (), Bid , 10 ,Red);
             int e= GetLastError ();
             if (e== 0 ) break ; else Print ( "error close Sell : " +e);
            }
          }
        }
     }
   }
   return ;
 }
여기처럼.
 
Romal001 :
여기처럼.

나는 그것을 가지고, 그렇지도 않고 그렇지도 않다. 작동하지 않는다.

 
if(closeneed && OrdersTotal()>0){
      CloseBuy(); CloseSell();
 
Romal001 :

수정됨


파일: