[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 149

 
Vovo4ka:

Leute, wo ist der Fehler suchen....a dann öffnet mehrere Positionen auf das Signal, und manchmal verpasst die Signale....a dann nach dem Auslösen eines Stopps oder Gewinn auf das Paar, öffnet eine neue....

Look.... Bedingungen: Gleichzeitiges Kreuzen des RSI mit den Perioden 14 und 17 des Niveaus 30 von unten nach oben und des Aufwärtstrends 70 von oben nach unten...


A1=diRSI1;
      A2=diRSI2;
warum sind sie hinter den Bedingungen her?
 
Vovo4ka:

Leute, wo ist der Fehler suchen....a dann öffnet mehrere Positionen auf das Signal, und manchmal verpasst die Signale....a dann nach dem Auslösen eines Stopps oder Gewinn auf das Paar, öffnet eine neue....

Look.... Bedingungen: Gleichzeitiges Kreuzen des RSI mit den Perioden 14 und 17 des Niveaus 30 von unten nach oben und des Aufwärtstrends 70 von oben nach unten...


 if (( diRSI1<30 && diRSI2<30)){      
         OpenBuy();
         return(0);
      }

      if (diRSI1>70 && diRSI2>70){
         OpenSell();
         return(0);
      }
Ich würde es so machen und auch einen Kaufstopp und keinen Verkaufsstopp setzen.
 
todem:
Ich würde es so machen und einen Kauf-Stopp setzen und nicht einen Verkauf


Ha... Ihre Art und Weise, mit jedem Wert unter 30 öffnet einen Handel!!!!!!! dies ist inakzeptabel.... ich brauche eine 30 Level Cross von unten nach oben!!!!!

und die Werte

A1=diRSI1;
      A2=diRSI2;

dies sind nur die Werte des RSI der vorherigen Kerze Eröffnung.... sie müssen nur weniger als 30 sein!!! alles ist richtig hier ... Ich verstehe nur nicht, warum Trades in ein paar Stücke auf ein Signal geöffnet werden!

 
todem:
Ich würde es so machen, und es würde nicht sofort auf kaufen, sondern auf bystop und nicht auf verkaufen, sondern auf sellstop gestellt werden.
 
Vovo4ka:


Ha... your way any value less than 30 opens a trade!!!!!!! this is inacceptable.... i need a 30 level cross from bottom up!!!!!

und die Werte

dies sind nur die RSI-Werte der vorherigen Eröffnung Kerze.... sie müssen nur weniger als 30 sein !!! alles ist richtig hier ... Ich verstehe nur nicht, warum Trades mehrmals auf ein Signal geöffnet werden !

Wenn Sie einen Handel eröffnen wollen, können Sie nicht 386 eröffnen, es ist viel schneller als das, was eine Million Geschäfte in einer Sekunde ausführt. Die Kontrolle der Eröffnung eines Handels erfolgt durch die Kontrolle der offenen Handelsgeschäfte. Wenn Sie insgesamt 0 Geschäfte haben, öffnen Sie sie, wenn nicht, sind Sie fertig.
 
todem:
Wenn Sie wollen, dass es einen Handel eröffnet, wird es nicht funktionieren - es ist ein 386er Computer, und er ist viel schneller, der eine Million Geschäfte in 1 Sekunde macht. Die Kontrolle der Öffnung eines Geschäfts erfolgt durch die Kontrolle der geöffneten Geschäfte. Wenn Sie insgesamt 0 Geschäfte haben, öffnen Sie sie, wenn nicht, sind Sie fertig.


Hmmm... das ist der Punkt, wenn es eine Million Geschäfte gibt, dann sollte das Geschäft einmal eröffnet werden....

OK, ich werde es irgendwie herausfinden))) wenn es einen Code für die Kontrolle des Handels gibt, lass es mich wissen...bitte))

 
Vovo4ka:


Hmmm... Das ist die Sache - wenn es eine Million Transaktionen gibt, dann sollte die Transaktion durch eine Transaktion eröffnet werden...

OK, ich werde es irgendwie herausfinden))) wenn es einen Code für die Transaktionskontrolle gibt, geben Sie ihn mir bitte))

int OrdCon(int nap, int MGV)
  {
    int result=0;
    for (int i=0;i<OrdersTotal();i++) {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
        result=result+1; // открыт ордер бай 
      }
      if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
        result=result+1; // открытый ордер селл 
      }
    }
    return(result); // 0 means we have no trades
  }
Hier ist die Funktion
 
todem:
Hier ist die Funktion

      if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
        result=result+1; // открыт ордер бай 
      }
      if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
        result=result+1; // открытый ордер селл 
      }

und auf welcher Grundlage wird dann geschlossen, dass der offene Auftrag entweder ein Verkauf oder ein Kauf ist?

Hier ist der gesamte obige Code:

int OrdCon(int nap, int MGV)
  {
    int result=0;
    for (int i=0;i<OrdersTotal();i++) {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if ((nap==0) && (OrderSymbol() == Symbol())&& (OrderMagicNumber() == MGV)) {
        result=result+1; // открыт ордер бай 
      }
      if ((nap==1) && (OrderSymbol() == Symbol()) && (OrderMagicNumber() == MGV)) {
        result=result+1; // открытый ордер селл 
      }
    }
    return(result); // 0 means we have no trades
  }
 

Hier habe ich Ihr PSI mit meinem Ratgeber optimiert

 
//+------------------------------------------------------------------+
//|                                               20/200 expert.mq4  |
//|                                                    1H   EUR/USD  |
//|                                                    Smirnov Pavel |
//|                                                 www.autoforex.ru |
//+------------------------------------------------------------------+

#property copyright "Smirnov Pavel"
#property link      "www.autoforex.ru"

extern int TakeProfit = 20; // Уровень тейкпрофит в пунктах
extern int StopLoss = 200; // уровень стоплосс в пунктах
extern int TradeTime=18;
extern int t1=7;
extern int t2=2;
extern int delta=7;
extern int dayout=1;
extern double lot = 0.1;

int ticket;
bool cantrade=true;

int OpenLong(double volume=0.1)
{
  int slippage=10;
  string comment="20/200 expert (Long)";
  color arrow_color=Red;
  int magic=0;

  ticket=OrderSend(Symbol(),OP_BUY,volume,Ask,slippage,Ask-StopLoss*Point,
                      Ask+TakeProfit*Point,comment,magic,0,arrow_color);
  if(ticket>0)
  {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
    {
      Print("Buy order opened : ",OrderOpenPrice());
      return(0);
    }  
  }
  else 
  {
    Print("Error opening Buy order : ",GetLastError()); 
    return(-1);
  }
}
  
int OpenShort(double volume=0.1)
{
  int slippage=10;
  string comment="20/200 expert (Short)";
  color arrow_color=Red;
  int magic=0;  
  
  ticket=OrderSend(Symbol(),OP_SELL,volume,Bid,slippage,Bid+StopLoss*Point,
                      Bid-TakeProfit*Point,comment,magic,0,arrow_color);
  if(ticket>0)
  {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      {
        Print("Sell order opened : ",OrderOpenPrice());
        return(0);
      }  
  }
  else 
  {
    Print("Error opening Sell order : ",GetLastError()); 
    return(-1);
  }
}

int init()
{
  return(0);
}

int deinit()
{   
  return(0);
}

int start()
{
  if((TimeHour(TimeCurrent())>TradeTime)) cantrade=true;  
  // проверяем есть ли открытые ордера ...
  if(OrdersTotal()<1)
  {
    // ... если нет ни одного открытого ордера, то идем дальше
    // проверяем настало ли время для торговли
    if((TimeHour(TimeCurrent())==TradeTime)&&(cantrade)&&(TimeDayOfWeek(TimeCurrent())!=dayout))
    {
      // ... если настало время, то
      if ((Open[t1]-Open[t2])>delta*Point) //Если цена изменилась на величину delta
      {
        //условие выполнено значит входим в короткую позицию:
        // проверяем есть ли свободные деньги для открытия короткой позиции
        if(AccountFreeMarginCheck(Symbol(),OP_SELL,lot)<=0 || GetLastError()==134)
        {
          Print("Not enough money");
          return(0);
        }
        OpenShort(lot);
        cantrade=false; //запрещаем торговать повторно до следующего бара
        return(0);
      }
      if ((Open[t2]-Open[t1])>delta*Point) //Если цена изменилась на величину delta
      {
        // условие выполнено значит входим в длинную позицию
        // проверяем есть ли свободные деньги на счету
        if(AccountFreeMarginCheck(Symbol(),OP_BUY,lot)<=0 || GetLastError()==134)
        {
          Print("Not enough money");
          return(0);
        }
        OpenLong(lot);
        cantrade=false;
        return(0);
      }
    }
  }   
  return(0);
}
Was halten Sie von diesem Berater?
Grund der Beschwerde: