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

 
 


Ich kritisiere gerne, aber es gibt eine Menge - ich habe nur den ersten Absatz überflogen

Das Archiv lässt sich nicht richtig einbinden (( Ich werde es jetzt auf eine File-Sharing-Seite hochladen.

 
VladislavVG:

Wenn diese immer die nächstgelegene dann kann es ganz einfach sein und Zauberer werden natürlich nicht benötigt. Aber wir haben nichts darüber von PGM5 gehört, und im allgemeinen Fall kann es sich nicht um den nächsten Auftrag handeln, sondern um einen Auftrag, der weiter vom aktuellen Preis entfernt ist, und dazwischen können Aufträge aus anderen Gründen erteilt werden: Wir wissen nichts über den Entscheidungsalgorithmus. Wir sprachen nur über verbundene Aufträge.
Aus irgendeinem Grund habe ich das Gefühl, dass der nächstgelegene entfernt werden sollte. Die anderen sind alle weiter entfernt und öffnen sich unter anderen Bedingungen. Und da der nächstgelegene schwebende Auftrag dem Marktauftrag gegenüberliegt, haben wir alle Daten, um ihn richtig zu finden.
 
PGM5:
Wir danken Ihnen für Ihre Unterstützung. Können Sie mir sagen, wo ich die Antwort auf diese Frage finden kann? Ja, noch eine Sache: Aufträge sollten gesetzt werden, wenn ein Auftrag ausgelöst wird und wenn der Take-Profit ausgelöst wird, und der nächstgelegene sollte vorher gelöscht werden. Vielen Dank im Voraus.

Sie beginnen bereits mit der Erstellung der TOR. Haben Sie schon angefangen, etwas zu tun? Oder wartest du auf den Fisch? In diesem Thread helfen sie denjenigen, die kostenlos lernen wollen, wie man in mql4 programmiert, nicht denjenigen, die eine kostenlose fertige Lösung bekommen wollen.
 
43
alexey1979621 29.11.2013 11:52 #

Grüße an alle! Ich bitte um Hilfe bei der Lösung eines interessanten Problems. Es gibt einen EA, dessen Besonderheit darin besteht, dass nach Erzielung eines Gewinns die nächsten Trades von 1 bis 4 mit Stop-Loss und dann wieder mit Gewinn geschlossen werden. 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 damit überhaupt keine Aufträge öffnet und alles sehr klar ohne sie funktioniert. Vielleicht liegt auch ein Fehler in der Bedingung vor. Generell gilt: .... Ich weiß nicht, woran es liegt, ich kann es seit einer Woche nicht mehr reparieren. Könnt ihr mir sagen, wo der Fehler liegt, liebe Leute?

Ja, signal ist die Anzahl der Signale nach einem Gewinn und pynkt ist die Größe des Gewinns in Pips.

Ich wäre für jede 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);
 }
//+------------------------------------------------------------------+
 
artmedia70:
Sie fangen an, die ToR zu schreiben. Haben Sie überhaupt schon angefangen, selbst etwas zu tun? Oder wartest du auf den Fisch? In diesem Thread helfen sie denjenigen, die kostenlos lernen wollen, wie man in mql4 programmiert, nicht denjenigen, die eine kostenlose fertige Lösung bekommen wollen.



Hallo. Ich bin ein Anfänger in der Programmierung. Ich habe nur das Forum und ein Lernprogramm zum Lernen genutzt. Zuerst habe ich alles verstanden, aber als ich zu den allgemeinen Funktionen kam, fing ich an, etwas falsch zu verstehen, übrigens hatte ich während der Korrespondenz etwas gelernt... Ich habe das Skript von dort übernommen, das Skript von dort und einige Dinge aus dem Forum unterstrichen. Ich habe es mit der Demoversion ausprobiert - sie zeigt Gewinne an, aber die Skripte sind einfach: Die Aufträge werden nicht immer erteilt, und ein verpasster Auftrag führt zu einem Systemausfall. Ich habe es auf dem realen Konto ausprobiert: alle Aufträge werden platziert (aber dieses Mal gab es keine Lücken), es bringt Gewinn, aber viele unnötige Positionen werden eröffnet. Mir wurde klar, dass einfache Skripte und Funktionen dieses Problem nicht lösen können, und ich bat um Hilfe. Der Expert Advisor ist profitabel, aber er braucht etwas "Hilfe" mit seinen Händen. Ich denke daran, diese "Hilfe" mit der Zeit zu automatisieren.
 
Beraterdateihttp://drive.google.com/file/d/0B0Zxi_UuVVTZejc3Tmg1Zk5ablU/edit?usp=sharing
 
alexey1979621:
43
alexey1979621 29.11.2013 11:52 #

Grüße an alle! Ich bitte um Hilfe bei der Lösung eines interessanten Problems. Es gibt einen EA, dessen Besonderheit darin besteht, dass nach dem Erzielen eines Gewinns die nächsten Trades von 1 bis 4 mit Stop-Loss geschlossen werden, dann wieder mit 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 damit überhaupt keine Aufträge öffnet und alles sehr klar ohne sie funktioniert. Vielleicht liegt auch ein Fehler in der Bedingung vor. Generell gilt: .... Ich weiß nicht, woran es liegt, aber ich habe diese Verstopfung seit zwei Wochen nicht beheben können. Könnt ihr mir sagen, wo der Fehler liegt, liebe Leute?

Ja, signal ist die Anzahl der Signale nach einem Gewinn und pynkt ist die Größe des Gewinns in Pips.

Ich wäre für jede Hilfe dankbar.


Die Funktion Sig() verbietet das Eröffnen von Geschäften, wenn es keine Auftragshistorie gibt (gibt false zurück)
 
Vinin:

Die Funktion Sig() verbietet das Eröffnen von Geschäften, wenn es keine Auftragshistorie gibt (gibt false zurück)
Ich bin davon ausgegangen, dass der Verlauf im Tester simuliert wird (ich habe mich also geirrt). Es scheint, dass wir eine Suchfunktion der letzten Bestellung durch ein Simul, einen Schieberegler und verwerfen schwebende Aufträge durchführen sollten. Mein Gehirn versteht es (wenn ich in die richtige Richtung denke), aber ich kann den Code nicht mit meinen eigenen Händen ausführen. Können Sie mir einen Tipp geben? Vielen Dank für die Hilfe.
 
alexey1979621:
Ich bin davon ausgegangen, dass der Verlauf im Tester simuliert wird (ich habe mich also geirrt). Es stellt sich heraus, dass Sie eine Funktion benötigen, um nach der letzten Bestellung zu suchen, nach simul, medj, und die ausstehenden zu verwerfen. Mein Gehirn versteht es (wenn ich in die richtige Richtung denke), aber ich kann den Code nicht mit meinen eigenen Händen ausführen. Können Sie mir einen Tipp geben? Ich danke Ihnen für Ihre Hilfe.
Alle Ihre Tipps!
Dokumentation Tutorial

Und Funktionen:

GetIndexLastPos - Gibt den Index der zuletzt geöffneten Position oder -1 zurück
GetLotLastPos - Gibt die Lotgröße der zuletzt geöffneten Position oder -1 zurück

Und viele andere sehr nützliche!