Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 292

 

Leute, bitte raten Sie einen guten DC für EA-Handel?

[Deleted]  
Welche Art von Expert Advisor würden Sie gerne auf einem echten Konto einsetzen?
 
Profitov:
Welche Art von Expert Advisor darf ich fragen? Was sagt mir der "Martin" über den nächsten, den Sie auf einem realen Konto verwenden möchten?

Ich weiß nicht, welche Art von "Martin"))) Nein, noch nicht für das echte Konto, nicht für das Demokonto, aber ich möchte das Demokonto desselben Maklerunternehmens nutzen, das später auch für das echte Konto verwendet werden kann.

 
SpikeOne:

Leute, kann bitte jemand beschreiben, was vor sich geht, und die Stelle zeigen, an der die Aufträge im + geschlossen und eine neue Serie eröffnet wird.

Andrei, nichts für ungut, aber diese Absurdität gehört in die Annalen!
 

Grüße an alle! Ich bitte um Hilfe bei der Lösung eines interessanten Problems. Ich habe einen EA, dessen Funktion darin besteht, dass nach dem Erzielen eines Gewinns die nächsten Trades von 1 bis 4 mit Stop-Loss geschlossen werden, dann wieder Gewinn. Der Expert Advisor eröffnet Trades auf der Grundlage des Indikatorsignals. Um profitable Geschäfte nach dem Gewinn auszuschließen, sollte man die vom Indikator generierten Signale auslassen, d.h. keine Geschäfte (1,2,3,4) nach einem Gewinn abschließen. Zu diesem Zweck steht die Funktion Sig zur Verfügung. Ich denke jedoch, dass ich diese Funktion falsch geschrieben habe, da der EA keine Aufträge mit ihr öffnet und alles sehr gut ohne sie funktioniert. Bitte weisen Sie die klugen Leute darauf hin, wo ich einen Fehler gemacht habe.

Ja, Signal ist die Anzahl der Signale nach Gewinn und pynkt ist die Gewinngröße in Pips.

Ich wäre Ihnen für Ihre Hilfe dankbar.

 
void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);


   double MA1Low = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,0,1), Digits); 
   double MA2High = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,1,1), Digits);
   
 
  
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Open[1] > MA1Low && Close[1] < MA1Low)
   
{
      if(Pro(1,100))

   {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",1000,0,Red);
      return;
    }
   
  }  
//---- buy conditions
   // покупка
  if (Open[1]<Close[1] && Open[1] < MA2High && Close[1] > MA2High)
 
 { 
   if(Pro(1,100))
   {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Pattern_1",1000,0,Blue);
      return;
   }       
   }
}
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Sig(int signal,int pynkt)
 {
  static int cnt = 0;
  static datetime tm;
  if(Time[0] == tm) return(false);
  tm = Time[0];
  if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY) == true)
   {
    cnt = cnt + 1;
    if(OrderType() == OP_BUY && OrderClosePrice() - OrderOpenPrice() < pynkt*Point) cnt = 0;
    if(OrderType() == OP_SELL && OrderOpenPrice() - OrderClosePrice() < pynkt*Point) cnt = 0;
    if(cnt >= signal) return(true);
   }
  return(false);
 }
//+------------------------------------------------------------------+
[Deleted]  
Helfen Sie mir, der EA lässt sich nicht kompilieren
//ПАРАМЕТРЫ ОТКРЫТИЯ ДЛИННОЙ ПОЗИЦИИ

if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)>-100 
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{ 
Opn_B=true;
//Cls_S=true;
}
}
 //ПАРАМЕТРЫ ОТКРЫТИЯ короткой ПОЗИЦИИ    
if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{
Opn_S=true; 
//Cls_B=true;   
}  
}


if(Tip==0){
           if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(SL<Bid-Point*TrailingStop)
                    {
                     OrderModify(Ticket,OrderOpenPrice(),Bid-Point*TrailingStop,TP,0,Green);
                     //return(0);
                    }
                 }
              }
}

if(Tip==1){
           if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if(SL>Ask+Point*TrailingStop)
                    {
                     OrderModify(Ticket,OrderOpenPrice(),Ask+Point*TrailingStop,TP,0,Red);
                    // return(0);
                    }
                 }
              }
}


   // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
//длинной
//if (iRSI(NULL,0,14,PRICE_CLOSE,0)<30&&iRSI(NULL,0,14,PRICE_CLOSE,1)>30){
 if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {  
      if (Tip==0)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Bid,2);      // Закрытие Buy
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ",Ticket);
            break;                              // Выход из цикла закр
           }
                           
            
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
        }

// короткой       
if (Close[NULL]){
      if (Tip==1)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Ask,2);      // Закрытие Sell
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ",Ticket);
            break;                              // Выход из цикла закр
           }
                  
           
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
        }
      break;                                    // Выход из while
     }

 
niformalka:
helfen Sie mir, der EA lässt sich nicht kompilieren.

... und nach welchen Sprachregeln haben Sie sie gestaltet?! Zum Beispiel:

if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)>-100 
{

:)

 
niformalka:
Hilf mir, der EA lässt sich nicht kompilieren

Doppelklicken Sie auf den roten Kreis, der einen Kompilierungsfehler anzeigt, und Sie sehen denselben Kreis links in der Zeile, in der der Fehler zu suchen ist! Sie können Ihren Kreis von hier aus nicht sehen!

Und löschen Sie Ihren Beitrag, so wie ich meinen mit Ihrem Blatt gelöscht habe!

 
SpikeOne:

Sie haben das Jahr 2014
Ich würde mich über eine ausführliche Antwort freuen, denn ich werde diese Marke zu einem Verkaufsschlager machen.
 
niformalka:

Leute, helft mir, einen Fehler zu finden, der EA lässt sich nicht kompilieren, ich habe mir schon den Kopf darüber zerbrochen, vermutlich ein Fehler in den Long/Short-Positionseröffnungs- und -schließungszeilen


//PARAMETER FÜR DIE OFFENE LONG-POSITION

if(iCCI(Symbol,0,14,PREIS_TYPISCH,0)>100&&iCCI(Symbol,0,14,PREIS_TYPISCH,0)>-100
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{
Opn_B=true;
//Cls_S=true;
}
}
//Kurz POSITION ERÖFFNEN PARAMETER
if(iCCI(Symbol,0,14,PREIS_TYPISCH,0)<100&iCCI(Symbol,0,14,PREIS_TYPISCH,0)<-100
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{
Opn_S=true;
//Cls_B=true;
}
}


if(Tip==0){
if(NachlaufenderStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(SL<Bid-Point*TrailingStop)
{
OrderModify(Ticket,OrderOpenPrice(),Bid-Point*TrailingStop,TP,0,Green);
//Rückgabe(0);
}
}
}
}

if(Tipp==1){
if(NachlaufenderStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if(SL>Ask+Point*TrailingStop)
{
OrderModify(Ticket,OrderOpenPrice(),Ask+Point*TrailingStop,TP,0,Red);
// { return(0);
}
}
}
}


// Aufträge schließen
while(true) // Auftragsschleife schließen
{
//long
//if(iRSI(NULL,0,14,PRICE_CLOSE,0)<30&iRSI(NULL,0,14,PRICE_CLOSE,1)>30){
if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {
if (Tip==0) //Kaufauftrag eröffnen
{ //und es gibt ein enges Kriterium
Alert("Trying to close Buy ",Ticket,". waiting for reply...);
RefreshRates(); // Daten auffrischen
Ans=OrderClose(Ticket,Lot,Bid,2); // Close Buy
if (Ans==true) // Es hat funktioniert :)
{
Warnung ("Kaufauftrag geschlossen ",Ticket;)
break; // Verlassen der geschlossenen Schleife
}


if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // erneut versuchen
return; // Beenden von start()
}
}

// kurz
if (Close[NULL]){
if (Tipp==1) //Verkaufsauftrag eröffnen.
{ // es gibt ein enges Kriterium
Alert("Versuch, Verkauf zu schließen ",Ticket,";)
RefreshRates(); // Daten aktualisieren
Ans=OrderClose(Ticket,Lot,Ask,2); // Schlussverkauf
if (Ans==true) // Es hat funktioniert :)
{
Warnung ("Verkaufsauftrag geschlossen ",Ticket;)
break; // Verlassen der geschlossenen Schleife
}


if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // erneut versuchen
return; // Beenden von start()
}
}
break; // Beenden während
}



Das Einzige, was der Compiler nicht tun kann, ist Variablen zu deklarieren.