[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 135

 

Hallo, ich habe das Skript aus dem Tutorial von S. Kovalev als Grundlage genommen. Ich möchte einen Expert Advisor erstellen, der einen Handel eröffnet, einen Stop-Loss setzt, den Gewinn mitnimmt und dann das Ende des Handels abwartet (d. h. den Stop-Loss oder den Gewinn) und erst dann den Handel wieder eröffnet. Ich habe es mit Zyklus- und Zyklusunterbrechungen versucht. Bitte teilen Sie mir mit, wie ich dies tun kann. Ich dachte, es wäre vielleicht einfacher, Stop-Loss und Take-Profit nicht gleichzeitig zu setzen und den Kurs zu schließen, wenn er sich einem bestimmten Niveau nähert. Aber ich will es nicht so machen, weil ich Angst vor Slippage habe und jeder Punkt für mich wichtig ist. Wenn ich versuche, ein oder mehrere Geschäfte auf einmal zu öffnen, kann ich kein neues eröffnen.

//+------------------------------------------------------------------+
int start() //---- Funktion start
{
double //---- deklarieren Variablen
x,
y;
//+------------------------------------------------------------------+
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-15*Point,Ask+15*Point); //---- Marktorder zum Kauf und Setzen eines Stopps und Gewinns 15 Punkte vom Eröffnungskurs
//+------------------------------------------------------------------+
while(x!=Ask-15*Point||y!=Ask+15*Point) //---- der Bedingung Ich möchte, dass der Handel geschlossen wird, bis der vorherige Handel geschlossen ist, d.h.е. ist es möglich,
{//----- NUR einen Handel offen halten
weiter;//---- unterbricht die Bedingung und geht zum nächsten Schritt über
}
//+------------------------------------------------------------------+
return;//---- function return
}
//+------------------------------------------------------------------+

 
YOUNGA:

Ja, nur offene Preise, deshalb ist es wichtig, sie bei der Analyse des EA zu berücksichtigen. Wenn z. B. das Ende einer Kerze Ihren Kanal durchbricht, sieht der Expert Advisor dies möglicherweise nicht, aber Sie können die Programmlogik ändern und das Problem lösen.



Ich danke Ihnen!
 

F: Hier ist ein Stück Code

int init()

{
//----
ShiftSignal=0;
SlowPer=FastPer+AddSlow;
Spread=MarketInfo(Symbol(),MODE_SPREAD);
Comment("ExpertMagicNumber=",ExpertMagicNumber);

if ((FastShift<0)&&(SlowShift>=0))
ShiftSignal=FastShift;

if ((FastShift>=0)&&(SlowShift<0))
ShiftSignal=-SlowShift;

if ((FastShift<0)&&(SlowShift<0))
{
if (MathAbs(FastShift)>MathAbs(SlowShift))

ShiftSignal=-FastShift;
sonst
ShiftSignal=-SlowShift;
}
//----
return(0)

Ich interessiere mich für dieses Fragment

if ((FastShift<0)&&(SlowShift>=0))

ShiftSignal=FastShift;

Wenn FastShift<0 ist, bedeutet dies, dass FastShift anfänglich eine negative ganze Zahl ist, zum Beispiel: -2

dann in der nächsten Zeile ShiftSignal=FastShift;

Man sollte meinen, dass der Wert -2 der Variablen ShiftSignal zugewiesen wird und nicht Null.

aber gleichzeitig fragen Sie sich vielleicht, warum vor der FastShift-Variablen ein Minus steht

Denn in der Mathematik ist das Minus für das Minus das Plus, d.h. der Wert ist "+2", also einfach 2.

Wenn Sie möchten, kann ich Ihnen den gesamten Code schicken.

 

Helfen Sie mir, ein solches Problem zu lösen.

Es liegt ein Kauf- oder Verkaufssignal vor, aber auch der nächste Balken erfüllt die Bedingung, da das Signal des nächsten Balkens nicht berücksichtigt wird.

Wie kann ich das machen, aber es funktioniert nicht.

if( условие на покупку или продажу)
{          

      if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==true)   // если есть уже ордер то проверяем
        {
                 if (OrderOpenTime()!=Time[1]||OrderOpenTime()!=Time[2]||OrderOpenTime()!=Time[3]) // если открытый ордер имеет значение(OrderOpenTime) не равное времени бару назад и тд. до 3 баров.
                    {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),2,0,0,"ntcn",Magic,0,Blue);  // тогда открываем
                    }
        }


}

Aber es funktioniert nicht... oder wie es anders gemacht werden kann???? Ich wäre Ihnen dankbar, wenn Sie Ihr Wissen weitergeben könnten.

Falls jemand hier liest und mit dem gleichen Problem konfrontiert ist, hier ist die Antwort:

if( условие на покупку или продажу)
{          

   OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);                                                // проверяем последний ордер
        if(OrderOpenTime()<Time[3])                                                                       // если по времени прошло 3 бара тогда можно открывать новую сделку
           {
                   TimeBar=Time[0];
                   OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,"ntcn",Magic,0,Red); 
           }

}
 
Oleg, ist die Bedingung nicht sehr streng Zum Beispiel, starten Sie zählen offene Aufträge, wenn mehr als 1 dann nicht öffnen (nehmen vorgefertigte Funktionen auf der Website hier)
 

Da niemand geantwortet hat, werde ich versuchen, meine Frage umzuformulieren.

Gibt es eine Möglichkeit, Informationen aus dem kompilierten Indikator zu ziehen, wenn die Funktion iCastom() nur Nullen liefert?

 

Hallo, ich möchte wissen, wie man nach einem positiven Indikatorsignal mit dem Bar Counting beginnt.

- Ich bekomme ein Signal, offene Bucht, erst nachdem die nächsten 2 Balken hochgehen.

 
YOUNGA:
Oleg, die Bedingung ist nicht sehr streng, z. B. beginnen Sie mit der Zählung der offenen Aufträge, wenn mehr als 1 nicht geöffnet wird (verwenden Sie die gebrauchsfertigen Funktionen auf dieser Website)


Leider können Signale auch wiederholt werden (im Sinne von mehr kaufen, sie können eine Stunde später sein, einen Tag später, usw.) Ich habe durch OrderComment, Sperren, aber es gibt auch wiederholte Aufträge. Ich möchte auf Balken für wiederholte Signale sperren. Wenn durch Sleepage, Zeitrahmen ist anders und 4 Stunden....

Wenn Sie nicht wissen, was Sie damit tun sollen, werden Sie eine falsche Antwort erhalten.

 
dertop:


Leider können sich Signale auch wiederholen (im Sinne von extra, sie können eine Stunde später sein, einen Tag später, usw.) Ich habe durch OrderComment, Block, aber es gibt auch sich wiederholende Aufträge. Ich möchte auf Balken für wiederholte Signale sperren. Wenn durch Sleepage, Zeitrahmen ist anders und 4 Stunden....

Aber danke für die Antwort.


Suche auf der Website nach der Filiale

Verbot des Handels in einer Bar.

 
Gute Nacht! Bitte erklären Sie das Prinzip des Zickzack-Indikators. Zum Beispiel werden Fraktale gebildet, wenn links und rechts 2 Balken über oder unter dem aktuellen Balken liegen. Was ist die Grundlage des Zickzack-Indikators? Ich bitte Sie.
Grund der Beschwerde: