Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 79

 

Hallo, es gibt eine einfache Frage wie diese. Zunächst eröffnen wir einen Einweghandel und zahlen den Spread. Dann eröffnen wir einen Gegenhandel mit demselben Lot, und der Spread wird ebenfalls davon abgezogen. Mit anderen Worten, wenn wir diese Geschäfte gegeneinander abschließen, bedeutet das, dass wir zwei Spreads zahlen?

 

bitte ein paar Codezeilen mitteilen

1) wie man Eulen zum Laufen bringt, z.B. einmal alle 10 Sekunden

2)einen schwebenden Auftrag einstellen, wenn es keinen schwebenden Auftrag zu diesem Preis gibt

3) Falls zutreffend, geben Sie bitte an, wie eine Differenz zwischen den eingestellten (offenen) Aufträgen zu berechnen ist

 
Rustem71:


Sagen Sie mir einfach, was Sie tun wollen, wenn die Zecke da ist.

Es gibt so viel zusätzliche Arbeit, die Sie leisten.

Und schreiben Sie den Code richtig, kürzen Sie keine Klammern ab. Wenn Sie geschweifte Klammern in die Bedingung schreiben sollen, sollten Sie sie schreiben. Der Code ist dann leichter zu verstehen. Wenn Sie den Dreh raus haben, können Sie anfangen zu kürzen.

Ich warte noch auf die Klärung der Frage nach der Zecke.


Die Idee ist, dass 2 Pending Orders eröffnet werden, die zunächst mit dem anfänglichen Lot gearbeitet haben, z.B. BUY sofort gelöscht SELLSTOP und an gleicher Stelle wird SELLSTOP gesetzt, aber mit doppeltem Lot, nur öffnet SELL setzen BUYSTOP *2 Lot, und dann, z.B. wenn nicht ausgelöst Trilling Stop und der Trend drehte sich um setzen Pending mit *2 Lot. und dann, wenn kommt in ohne einen Verlust im Plus, wie 0,05 wird Trailing Stop gesetzt werden. Genau so!!! Wenn Sie mir sagen, wie zu optimieren + Ihre Kommentare zu meinen Fehlern werden sehr dankbar sein! Ich kann nicht verstehen, warum ich einen Platz von einem schwebenden Auftrag, schwebende Aufträge offen, bis der gesamte Abfluss der Kaution haben!
 
Akinak:
Schauen Sie bitte! Wenn Sie mir erklären können, was ich falsch gemacht habe! Ich habe alles versucht, entweder ohne eine Bestellung zu öffnen oder eine Reihe von Bestellungen in einer Schleife zu öffnen!

wenn er größer oder gleich eins ist (einfacher - größer als null) - nicht öffnen, dasselbe sollte für Baikas wiederholt werden

und bei Ihnen ist es andersherum:

if(s==1)

Es sollte also in etwa so aussehen:

if(s==0)
{ 
//открываем селл
}
 
Akinak:
Bitte sehen Sie es sich an! Wenn Sie mir erklären können, was ich falsch gemacht habe! Als einziger habe ich nicht versucht, eine Bestellung zu öffnen oder eine Packung durch den Zyklus zu öffnen!!!


Wenn ich es richtig verstanden habe, geht es folgendermaßen. Der Rest bleibt Ihnen überlassen.

Und schreiben Sie die Codes richtig.

Dateien:
888.mq4  8 kb
 
Hallo! Bitte helfen Sie mir bei dieser Funktion, ich bin schon ganz erschöpft und weiß nicht, wie ich es richtig machen soll! Ich brauche das wäre in der Lage sein, in den Parametern, die Zeit von meinem Computer eingeben. Vielen Dank im Voraus!
extern bool    HOUR = false;             // Часы Вкл (true) / Выкл (folse)
extern string  TimeBegin = "13:30";      // Время начала (ЧЧ:ММ)
extern string  TimeEnd   = "17:00";      // Время окончания (ЧЧ:ММ)
//Отправляет true если по времени разрешено торговать
bool isTradeTimeString()
{
 datetime hbegin = StrToTime(TimeBegin) + TimeGMTOffset();
 datetime hend = StrToTime(TimeEnd) + TimeGMTOffset();
 
 datetime dtBegin, dtEnd;        // Время начала и окончания работы
 int      hc, he;                // Часы текущего времени и окончания работы

 dtBegin=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hbegin,TIME_MINUTES));
 dtEnd=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE)+" "+TimeToStr(hend,TIME_MINUTES));
 hc = TimeHour(TimeCurrent());
 he = TimeHour(dtEnd);
 if(dtBegin>=dtEnd)
 {
  if(hc>=he)
   dtEnd+=24*60*60;
  else
   dtBegin-=24*60*60;
 }
 if(HOUR==true)
 {
  if(TimeCurrent()>=dtBegin && TimeCurrent()<=dtEnd)
   return(true);
  else
  {
   if(CountTrades()==0)
    return(false);
  }
 }
 return(true);
}
 
Arseniy Barudkin:
Hallo! Bitte helfen Sie mir bei dieser Funktion, ich bin schon ganz erschöpft und weiß nicht, wie ich es richtig machen soll! Ich brauche das wäre in der Lage sein, in den Parametern, die Zeit von meinem Computer eingeben. Vielen Dank im Voraus!
ZeitLokal()
 
Rustem71:


Wenn Sie es richtig verstanden haben, ist es so. Du übernimmst das Kommando.

Und schreiben Sie die Codes richtig.


Vielen Dank! Sehr hilfreich! Ich bin ein wenig mehr als zwei Wochen des Schreibens noch nicht wissen, solche Feinheiten!
 
Hallo, liebe Forumsmitglieder, wenn ich einen einfachen Expert Advisor erstelle, bekomme ich einen Fehler! Können Sie mir bitte den Grund dafür nennen?
Dateien:
meryjj.jpg  197 kb
 
naravat:
Hallo, liebe Forumsmitglieder, wenn ich einen einfachen Expert Advisor erstelle, bekomme ich einen Fehler! Können Sie mir bitte den Grund dafür nennen?

Sie müssen Klammern nach return setzen und in diese Klammern einen Wert vom gleichen Typ wie der Funktionstyp schreiben.