[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 750

 
ToLik_SRGV:

Das stimmt, ich glaube, Rustam hat das angedeutet.

Ja, ich habe es gelesen, nachdem ich es gepostet hatte :)
 
Vielen Dank an alle, ich werde mich wieder an die Arbeit machen :)
 

ICH VERSTEHE NICHT, WARUM ES GLOBALE VARIABLEN GIBT.

#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

bool
b,s, 
bs,
ss,
bt,
st;
double 
bl,sl;  
//+------------------------------------------------------------------+

SIE WERDEN ZUR ERÖFFNUNG VON AUFTRÄGEN VERWENDET

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
if(bs==1&&bl==1)
{
    NewOrder1(OP_BUYLIMIT,Lot);

Today=TimeDay(TimeCurrent())
;}

return(0);}

//+------------------------------------------------------------------+
int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double LT=0; //Лот
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
   {PR=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;
    if(Lot>0) LT=3*Lot;
        }
int tic=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
if(tic<0) {Print(GetLastError());
        }else
        {
b=0;s=0;  
bs=0;
ss=0;
bt=0;
st=0;    
bl=0;sl=0; }
return(tic);}

WENN EINE BESTELLUNG EIN TICKET GRÖSSER ALS 0 HAT, SOLLTE DIESE FUNKTION FUNKTIONIEREN

else
        {
b=0;s=0; 
bs=0;
ss=0;
bt=0;
st=0;   
bl=0;sl=0; }

WAS ALLE WERTE DER GLOBALEN VARIABLEN AUF 0 ÄNDERN UND KEINEN NEUEN AUFTRAG MEHR ERÖFFNEN SOLLTE,

ABER ES GEHT IRGENDWIE ZURÜCK ZUR AUFTRAGSERÖFFNUNG UND ÖFFNET NEUE AUFTRÄGE BEI JEDEM NEUEN TICK.

WAS IST DER GRUND FÜR DIESES SELTSAME PHÄNOMEN?

GLOBALE VARIABLEN WERDEN VON HIER AUS GESETZT, WENN EIN MARKTAUFTRAG GESCHLOSSEN WIRD

for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; 
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
       
         }
      }

AUCH HIER IST DER VOLLSTÄNDIGE EXPERTENRATGEBER

Dateien:
test8_2.mq4  7 kb
 
FoxUA:

LEUTE, HELFT MIR, ICH VERSTEHE NICHT...


Wo befindet sich der Block, der diese Variablen mit Werten füllt?
Ich würde gerne den genauen Code Ihres Expert Advisors in einem Stück sehen, in der Form, in der er kompiliert und getestet wurde.
Nicht in Bruchstücken, denn diese Frage steht schon lange im Raum und wurde mehr als einmal beantwortet, aber aufgrund dieser Bruchstücke kann niemand das Gesamtbild des Problems vollständig verstehen.

Zeigen Sie also bitte das ganze Bild, damit es keine Verwirrung gibt.

 
ToLik_SRGV:

Wo befindet sich der Block, der diese Variablen mit Werten füllt?
Ich würde gerne den genauen Code Ihres EA in einem Stück sehen, in der Form, in der er kompiliert und getestet wurde.
Nicht bruchstückhaft, denn diese Frage steht schon lange im Raum, und sie wurde schon oft beantwortet, aber niemand kann das Gesamtbild des Problems aufgrund dieser Bruchstücke vollständig verstehen.

Zeigen Sie also bitte das ganze Bild, damit es keine Verwirrung gibt.

HIER IST DIE GANZE EA

Dateien:
test8_1.mq4  7 kb
 

eine Anfrage im Thread "Ich schreibe einen kostenlosen EA" nicht immer eine Antwort erhält?

 
diaspar:

eine Anfrage im Thread "Ich schreibe einen kostenlosen EA" nicht immer eine Antwort erhält?

Ich möchte Sie fragen, wie oft gehen Sie umsonst zur Arbeit?
Ungefähr so oft antworten sie.
 
diaspar:

eine Anfrage im Thread "Ich schreibe einen kostenlosen EA" nicht immer eine Antwort erhält?

Das Thema wurde von dem Themenstarter begonnen. Er hat jedoch weit mehr Anfragen erhalten, als er verarbeiten kann. Die Logik diktiert, dass er antworten sollte - er ist derjenige, der es verlangt. Was haben Sie erwartet?
 
FoxUA:

ICH WEISS NICHT, WAS FALSCH IST MIT MEINEM EA, ICH HABE ALLES VERSUCHT, UND DAS EINZIGE ERGEBNIS IST 1 FÜR JEDEN TICK + 1 PENDING ORDER DAS EINZIGE, WAS IST, WENN ICH EINEN ANDEREN MARKT ZU SCHLIESSEN EIN ÄNDERT DIE VARIABLE ÖFFNET EINE ANDERE UND ÖFFNET EINE NEUE MIT JEDEM TICK

In Arbeit...

Wahrscheinlich liegt der Fehler in dem Block, der diese Variablen mit Werten füllt (in der for-Schleife), ich habe dort bereits einen Fehler gefunden (in OrderSelect()), aber das Ergebnis hat sich noch nicht geändert. Es scheint ein Fehler in der Logik des Blocks zu sein.

P.S.
Bitte wechseln Sie zur normalen Groß- und Kleinschreibung.

 
FoxUA:

Der Fehler ist natürlich offensichtlich, es öffnet Positionen bei jedem Tick, da der Verlustauftrag in der Historie nirgendwo hingeht, also findet er ihn bei jedem Tick und füllt die Werte der Kontrollvariablen mit denselben Werten, und dann wird der Block der Eröffnungsgeschäfte ausgelöst.