Hilfe bei der Feinabstimmung eines Beraters, eines Indikators - Seite 5

 
Natalya Dzerzhinskaya:
Wie erkennt man Pinbars auf verschiedenen TFs?

Das ist eine großartige Möglichkeit der Identifizierung))

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:

So muss man es definieren:))

Gute Option!!! Danke))

 
Natalya Dzerzhinskaya:

Gute Option!!! Danke))

Mit Erlaubnis des Autors werde ich ein plattformübergreifendes Feature veröffentlichen

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

Mit Erlaubnis des Autors werde ich ein plattformübergreifendes Feature veröffentlichen

Ich bin nur "FÜR" die Teilnahme))

 
Hallo! Helfen Sie mir, den Roboter einzurichten. Ich habe eine Schließzeit hinzugefügt, aber es funktioniert nicht.
Dateien:
0j1_uhskn.mq4  14 kb
 
Romal001:
Ich habe eine Nachspielzeit hinzugefügt, aber es funktioniert nicht.

Ich habe die Zeit hinzugefügt, aber nicht den Schließvorgang))


 
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;
 }
Zum Beispiel so.
 
Romal001:
Zum Beispiel so.

Ich habe es, nicht so und nicht so, es funktioniert nicht.

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

Korrigiert von


Dateien: