Danışmanı sonuçlandırmaya yardımcı olacağım, gösterge - sayfa 5

 
Natalya Dzerzhinskaya :
Farklı TF'lerdeki pinbarlar nasıl belirlenir?

Tanımlamak bu kadar iyi))

 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 :

Tanımlamak böyle güzel))

İyi bir seçenek!! Teşekkürler))

 
Natalya Dzerzhinskaya :

İyi bir seçenek!! Teşekkürler))

Yazarın izniyle, platformlar arası bir işlev yayınlayacağım

 //===============================================================================================
//---------------------------------- Функция находит Пин-бар -----------------------------------+
//===============================================================================================
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 :

Yazarın izniyle, platformlar arası bir işlev yayınlayacağım

Ben sadece "KATILIM İÇİN")

 
Merhaba! robotu kurmana yardım et. Kapanış saatini ekledim ve çalışmıyor.
Dosyalar:
0j1_uhskn.mq4  14 kb
 
Romal001 :
Kapanış saatini ekledim ve çalışmıyor.

Zaman eklendi, ancak kapanış işleminin kendisi eklenmedi))


 
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 ;
 }
Burası gibi.
 
Romal001 :
Burası gibi.

Bende var, öyle değil, öyle değil, çalışmıyor

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

düzeltildi


Dosyalar: