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

 
Roger:
Versuchen Sie, Ihr Terminal neu zu starten.

:) Danke! Der Neustart des Terminals hat nicht geholfen, aber der Neustart meines eigenen Gehirns schon! Ich verwende in meinem EA verschiedene Blöcke - Trading-Block, Kriterien-Block, Variablen-Block, Block mit Zusatzfunktionen usw., die durch ein inklusives System verbunden... Ich änderte also den Block der Handelskriterien "Criteria", und ich brauchte "Criteria01". Das ist der Trick... :)

ZZZ... Ich fing an, an den "drubashki" zu glauben... :) Ich hätte einfach etwas schlafen sollen...

 
itum:
BITTE HELFEN SIE MIR!!! Im folgenden Code prüfe ich, ob der Auftrag profitabel war oder nicht! Wenn nicht, zähle ich den Betrag !!!
Wenn der erste Handel unrentabel war, wird die Zählschleife gestartet und ewig fortgesetzt.

Aber es gibt einen Haken!!! Wenn ein Geschäft profitabel ist, werden alle weiteren Verlustaufträge normal gezählt ....

double orderProf; // Zähler der Anzahl der Verlustgeschäfte

double CalculateLots(){
double Res=0,01;
bool bProfit=true;
int PrevTime=-1;
double tmpLots;
for (int i=0;i<OrdersHistoryTotal();i++){
if (!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if (OrderSymbol()!=Symbol()) continue;
wenn (OrderCloseTime()<PrevTime) weiter;
PrevTime=OrderCloseTime();
if (OrderProfit()>0){bProfit=true; orderProf=0;} if (OrderProfit()<0){bProfit=false; orderProf++;}
tmpLots=OrderLots();
}


zurück(Res);
}
Ich habe Ihnen einen Link zu Igor Kim gegeben... Dort finden Sie eine Menge Leckereien für Ihren Bedarf...
 
artmedia70:
Ich habe Ihnen einen Link zu Igor Kim gegeben... Es gibt eine Menge Dinge, die Sie für Ihre Bedürfnisse brauchen...

DAK! Es ist dasselbe wie bei mir ....

Das PROBLEM ist, dass beim ersten Mal nicht normal gezählt wird, danach aber normal.... )))

Hilfe ...

 

Das Rätsel ist folgendes.

Der Indikator ganz am Ende des Codes erzeugt ein Objekt, das als Flag für einen anderen Indikator dient.

Nach der Erstellung des Objekts muss ich den Indikator 5 Sekunden lang "schlafen" lassen, dann das Objekt löschen und 60 Sekunden lang schlafen lassen, woraufhin er zum letzten Wiederholungsversuch übergeht und mit einem neuen Tick von vorne beginnt.

Ich versuche dies zu tun

      int pauseT=0, // 
          pause01=0, // время первой паузы
          pause02=0; // время второй паузы
         if (ObjectFind("signalG")==1) // проверка наличия
         pause01=TimeLocal()+5; // 
         {while (TimeLocal()<pause01) // цикл сравнения
         {pauseT=TimeLocal()+1;} // чем бы его занять?????
         ObjectDelete("signalG");}
         if (ObjectFind("signalG")==-1) // повтор всего для 2-ой паузы
         pause02=TimeLocal()+15;
         while (TimeLocal()<pause02)
         {pauseT=TimeLocal()+1;}

Es bleibt so lange hängen, bis die Zeit abgelaufen zu sein scheint.

Haben Sie einen Tipp, wie Sie das machen können?

 
Abzasc:

Das Rätsel ist folgendes.

Der Indikator ganz am Ende des Codes erzeugt ein Objekt, das als Flag für einen anderen Indikator dient.

Nach der Erstellung des Objekts muss ich den Indikator 5 Sekunden lang "schlafen" lassen, dann das Objekt löschen und 60 Sekunden lang schlafen lassen, woraufhin er zum letzten Wiederholungsversuch übergeht und mit einem neuen Tick von vorne beginnt.

Ich versuche dies zu tun

Es bleibt so lange hängen, bis die Zeit abgelaufen zu sein scheint.

Haben Sie einen Tipp, wie Sie das machen können?

Vorschlaghammer... :):) Sorry, ich konnte nicht widerstehen... :)
 
artmedia70:
Vorschlaghammer... :):)
Als Zeitschaltuhr? Er wird in einen lethargischen Schlaf fallen :)
 
Abzasc:
Als Zeitschaltuhr? Er wird in einen lethargischen Schlaf verfallen :)
Nun... wenn er gekitzelt werden muss, wird er aufwachen... :)
Okay, das ist kein Thema. Ich wünschte, ich könnte genauer sein. Einer, um ihn aufzuwecken, einer, um ihn niederzuschlagen, einer, um ihn festzunageln...
Wie sieht es mit der Fütterung aus? :)
 
artmedia70:
weitere Einzelheiten auf
Lassen Sie den Indikatorpausieren. Es ist wie ein Schlaf.
 
Abzasc:
Legen Sie eine Pause im Indikator ein. So ähnlich wie Schlaf.

Was ist falsch am Schlaf?

Und auch - bei der Überprüfung des Vorhandenseins eines Objekts

         if (ObjectFind("signalG")==1) // проверка наличия
vergleichen Sie mit der Teilfensternummer des Indikators. Was ist, wenn es zwei von ihnen sind?
Es ist besser, mit einer Variablen zu vergleichen, die der Teilfensternummer des gewünschten Indikators zugeordnet ist.

So suche ich:

 int WinID=WindowFind("A/D");               // Номер окна AD

Und dann prüfe ich bereits das Vorhandensein des Unterfensters:

// --------------- Начертим восходящую трендовую линию (DN - экстремумы) ---------------------            
             
               if (WinID>0)   // Если окно индикатора есть на чарте (оно может иметь любой номер, кроме 0)
                  {
                     if (ObjectFind("Trend_GLine_DN")<0)     // Если объект ещё не построен
                     ObjectCreate("Trend_GLine_DN",OBJ_TREND,WinID,LowestTDN,LowestPeakDN,HighestTDN,HighestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_COLOR,Lime);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME1,LowestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE1,LowestPeakDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_TIME2,HighestTDN);
                     ObjectSet("Trend_GLine_DN",OBJPROP_PRICE2,HighestPeakDN);
                  }
 
artmedia70:

Was mögen Sie am Schlaf nicht?

Bei den Indikatoren funktioniert das nicht. Ich verstehe nicht, warum man das so macht. Offenbar soll ein ständig funktionierender Indikator hypnotisierend wirken :)
artmedia70:

Was ist, wenn ich zwei davon habe?

Das wird es nicht. Ich will nur unnötige Fenster loswerden.

Ich muss das aber später nachprüfen, aber hoffentlich für den EA :) danke, ich werde es mir merken.