Hilfe bei der Codierung - Seite 733

 
tfi_markets:

Hallo Pro-Coders,

ich frage mich, ob mir jemand helfen kann,

Ich möchte, dass mein EA bei einem Trendwechsel einen Buy Trade öffnet und einen bestehenden Sell Trade schließt.

Er tut es, aber nur wenn er Gewinn gemacht hat. Wenn sich der Trend ändert, während die Position noch offen ist

offen ist, läuft er in StopLoss. (Siehe Bild). Manchmal funktioniert es und manchmal nicht.

Was könnte ich verbessern?

if(trendNow!=trendPrev)
         if(trendNow>0 && (NLD1>NLD2) && RSIfilter>55)
           {
            OpenBuy_  =true;
            CloseSell_=true;
           }
         else
         if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<45)
           {
            OpenSell_=true;
            CloseBuy_=true;  
          }
Dieser Teil des Codes reicht nicht aus, um etwas festzustellen
 
mladen:
Dieser Teil des Codes reicht nicht aus, um etwas zu schließen

Hallo Mladen,

vielen Dank, dass Sie sich mein Problem angesehen haben.

Nachstehend finden Sie den Code, der bestehende Verkaufs- und Kaufaufträge schließen soll.

Er sollte auch eine neue Kauf- oder Verkaufsorder eröffnen, wenn der Trend in die richtige Richtung zeigt...

//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)                                          
//| Iterate through open tickets
//+------------------------------------------------------------------+

   for(int i=0; i<Total; i++)
     {
      dummyResult=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {
         if(OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber)
           {

            for(int z=OrdersTotal()-1; z>=0; z--)
              {
               if(OrderSelect(z,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
                 {
                  if(OrderType()==OP_BUY)
                     buy_ticket=OrderTicket();
                  else
                  if(OrderType()== OP_SELL)
                     sell_ticket=OrderTicket();
                 }

// Close BUY

               if(CloseBuy_==true && buy_ticket!=0)
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());

// Open new Sell Order 

if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<45) OpenSell_=true;                

 }


// Close SELL
               if(CloseSell_==true && sell_ticket!=0)
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());


// Open new Buy Order                

if(trendNow>0 && (NLD1>NLD2) && RSIfilter>55) OpenBuy_  =true

 

}
              }
 
tfi_markets:

Hallo Mladen,

vielen Dank, dass Sie sich mein Problem angesehen haben.

Nachstehend finden Sie den Code, der bestehende Verkaufs- und Kaufaufträge schließen soll.

Er sollte auch einen neuen Kauf- oder Verkaufsauftrag eröffnen, wenn der Trend in die richtige Richtung zeigt...

//+------------------------------------------------------------------+
//| Signal Exit Buy / Exit Sell)                                          
//| Iterate through open tickets
//+------------------------------------------------------------------+

   for(int i=0; i<Total; i++)
     {
      dummyResult=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {
         if(OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber)
           {

            for(int z=OrdersTotal()-1; z>=0; z--)
              {
               if(OrderSelect(z,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
                 {
                  if(OrderType()==OP_BUY)
                     buy_ticket=OrderTicket();
                  else
                  if(OrderType()== OP_SELL)
                     sell_ticket=OrderTicket();
                 }

// Close BUY

               if(CloseBuy_==true && buy_ticket!=0)
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage*PipMultiplier,MediumSeaGreen);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  Print("Error closing Buy #",(string)OrderTicket()," Error code ",(string)GetLastError());

// Open new Sell Order 

if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<45) OpenSell_=true;                

 }


// Close SELL
               if(CloseSell_==true && sell_ticket!=0)
                 {
                  dummyResult=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage*PipMultiplier,DarkOrange);
                  if(EachTickMode) TickCheck = True;
                  if(!EachTickMode) BarCount = Bars;
                  Print("Error closing Sell #",(string)OrderTicket()," Error code ",(string)GetLastError());


// Open new Buy Order                

if(trendNow>0 && (NLD1>NLD2) && RSIfilter>55) OpenBuy_  =true

 

}
              }
Warum verwenden Sie eine Schleife innerhalb der Schleife? Das ist überhaupt nicht nötig. Schaffen Sie sie ab, und wenn der Code vereinfacht wird, ist auch alles einfacher zu bereinigen
 
pls ich brauche jemanden, der mir hilft, einen EA dieses Indikators zu erstellen
 
mladen:
Warum verwenden Sie eine Schleife innerhalb der Schleife? Das ist überhaupt nicht nötig. Schaffen Sie sie ab, und wenn der Code vereinfacht ist, wird es auch einfacher sein, ihn zu bereinigen.

Hallo Mladen,

ich habe den Code entsprechend geändert, meinst du, dass er jetzt besser ist?

Könntest du bitte einen Blick darauf werfen? Dieser Code ist noch in einem Pseudo-Stadium, noch nicht getestet.

Vielen Dank im Voraus!

//+-------------------------------------------------------------------------+
//| Signal close Buy / close Sell / Open new BUY or SELL order when possible   

int PositionIndex;    
int TotalNumberOfOrders;  
TotalNumberOfOrders = OrdersTotal();// store number of Orders in the variable

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)// for loop to loop through all Orders . .   COUNT DOWN TO ZERO !
   {
   if(!OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES)) continue;// if the OrderSelect fails advance the loop to the next PositionIndex
  
if(OrderMagicNumber() == MagicNumber   // does the Order's Magic Number match our EA's magic number ?
   && OrderSymbol() == Symbol()         // does the Order's Symbol match the Symbol our EA is working on ?
   && (OrderType() == OP_BUY           // is the Order a Buy Order ?
   || OrderType() == OP_SELL ))      // or is it a Sell Order ?
  
 if (! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), Slippage*PipMultiplier,DarkOrange )) //try to close the order
  Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError()); //if the Order Close failed print some helpful information
              
     if(trendNow>0 && (NLD1>NLD2) && RSIfilter>52) // Check if new entry condition is given
           {
            OpenBuy_=true;
             }
         else
     if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<42)
           {
            OpenSell_=true;
              }
   } // end of For loop        
  
 
tfi_markets:

Hallo Mladen,

ich habe den Code entsprechend geändert, meinst du, dass er jetzt besser ist?

Könntest du bitte einen Blick darauf werfen? Dieser Code ist noch in einem Pseudo-Stadium, noch nicht getestet.

Vielen Dank im Voraus!

//+-------------------------------------------------------------------------+
//| Signal close Buy / close Sell / Open new BUY or SELL order when possible   

int PositionIndex;    
int TotalNumberOfOrders;  
TotalNumberOfOrders = OrdersTotal();// store number of Orders in the variable

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)// for loop to loop through all Orders . .   COUNT DOWN TO ZERO !
   {
   if(!OrderSelect(PositionIndex, SELECT_BY_POS, MODE_TRADES)) continue;// if the OrderSelect fails advance the loop to the next PositionIndex
  
if(OrderMagicNumber() == MagicNumber   // does the Order's Magic Number match our EA's magic number ?
   && OrderSymbol() == Symbol()         // does the Order's Symbol match the Symbol our EA is working on ?
   && (OrderType() == OP_BUY           // is the Order a Buy Order ?
   || OrderType() == OP_SELL ))      // or is it a Sell Order ?
  
 if (! OrderClose( OrderTicket(), OrderLots(), OrderClosePrice(), Slippage*PipMultiplier,DarkOrange )) //try to close the order
  Print("Order Close failed, order number: ", OrderTicket(), " Error: ", GetLastError()); //if the Order Close failed print some helpful information
              
     if(trendNow>0 && (NLD1>NLD2) && RSIfilter>52) // Check if new entry condition is given
           {
            OpenBuy_=true;
             }
         else
     if(trendPrev>0 && (NLD1<NLD2) && RSIfilter<42)
           {
            OpenSell_=true;
              }
   } // end of For loop        
  
Ja. Viel besser :)
 

Mntiwana

Here is the EA for B& S with 15 warnings left. If some one could tell me how to clear Declaration of global  such as “declaration of 'trailingprofit' hides global declaration at line 62  mnt-BuyersSellers EA v1.00.mq4              915         53” I will clear it up.

I also need a few files to run it.

2016.12.17 16:01:35.347 2016.11.01 00:47  cannot open file 'C:\FXPrograms\Tallinex\MQL4\indicators\4BARS-MTF-BBH 1.06.ex4' [2]

2016.12.17 16:01:29.815 2016.11.01 00:17  cannot open file 'C:\FXPrograms\Tallinex\MQL4\indicators\BullBearHelper 1.00.ex4' [2]

2016.12.17 16:01:29.815 2016.11.01 00:17  cannot open file 'C:\FXPrograms\Tallinex\MQL4\indicators\AdaptiveLaguerreFilter.ex4' [2]

And ,"Slope Direction Line"

Let me Know

Ray

 
traderduke:

traderduke

Danke für Ihr Interesse, indi-Paket ist beigefügt, eigentlich ist das ganze System von FF (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sellers-ea.html)

gspe hat daran gearbeitet, aber ich denke, der ganze EA-Rahmen ist von "funyoo" und ich bin nur am EA-Code als Beispiel/Modellrahmen interessiert, um einen neuen EA damit zu erstellen, der Rest ihrer Strategie ist meiner Meinung nach nicht fruchtbar, wir können etwas Besseres als das bilden, wir haben 100 Mal bessere Indikatoren für jetzt :)

Grüße

Dateien:
package.zip  59 kb
 
traderduke:
Und wenn wir "t" vor der (Deklaration von ..... verstecken globale Deklaration) hinzufügen, werden alle Warnungen entfernt, aber ich bin mir nicht sicher, ob es richtig ist? ..... Ich habe diesen Tipp aus dem Thread (https://www.forex-tsd.com/forum/debates-discussions/18543-ea-not-working-under-build-610) und der langen zweiseitigen Unterhaltung/Argumentation dazwischen

"crsnapebtinternetcom" und MLADEN ..... dann habe ich getestet und es hat funktioniert, aber es braucht eine Zertifizierung :)

Grüße

 
mntiwana:

traderduke

Danke für Ihr Interesse, indi-Paket ist beigefügt, eigentlich ist das ganze System von FF (http://www.tradingsystemforex.com/ideas-for-expert-advisors/4662-buyers-sellers-ea.html)

gspe hat daran gearbeitet, aber ich denke, der ganze EA-Rahmen ist von "funyoo" und ich bin nur am EA-Code als Beispiel/Modellrahmen interessiert, um einen neuen EA damit zu erstellen, der Rest ihrer Strategie ist meiner Meinung nach nicht fruchtbar, wir können etwas Besseres als das bilden, wir haben 100 Mal bessere Indikatoren für jetzt :)

Grüße

Leute

Funyoos EAs zeigten in der Regel gute Ergebnisse bei der Verwendung von Martingale im Backtest. Ich würde sehr vorsichtig sein, wenn sie verwenden

Grund der Beschwerde: