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

 
artmedia70:
D.h. ich muss einen Aufruf zur Anzeige von Informationen im Indikatorfenster in init() hinzufügen?


versuchen, in init() zu schreiben

int init()
{
Alert("Ich kann Ihre Box nicht finden, ich bin raus, obwohl ich im Abschnitt init() aufgerufen wurde");
return(0);
}

 
IgorM:


Nun, versuchen Sie, in init() zu schreiben

int init()
{
Alert("Ich kann Ihre Box nicht finden, ich bin weg, obwohl ich im Abschnitt init() aufgerufen wurde");
zurück(0);
}

:) Plagiieren Sie? :)
 

Helfen Sie mir, dieses Problem zu lösen! Wenn ich ein Verlustgeschäft habe, muss ich das Los wechseln, wenn nicht - nein. Ich tue dies ......

//====================================================
// Расчет размера позиции
//====================================================
double CalculateLots(){
   double Res=dLots;
   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;
      if (OrderMagicNumber()!=MAGIC)                  continue;
      if (OrderCloseTime()<PrevTime)                  continue;
      PrevTime=OrderCloseTime();
      if (OrderProfit()>0) bProfit=true; else bProfit=false;
      tmpLots=OrderLots();
   }
   double Lots_Step=MarketInfo(Symbol(), MODE_LOTSTEP);
   if (!bProfit) Res=tmpLots+Lots_Step;
   return(Res);
}

Ich muss das Los ändern, wenn ich es ändern will, aber ich kann es nicht. Das Problem ist, dass ich, wenn ich das Lot ändere, bereits einen schwebenden Auftrag habe (mit anderen Lots). Ich muss diese Aufträge löschen und die Anzahl der Lose in ihnen ändern (auf eine neue Anzahl), aber die Parameter bleiben dieselben!


 


Liebe Programmierer,
Bitte beantworten Sie die folgende Frage:

Können Sie mir sagen, warum die Daten aus einer Zeichenkette nicht korrekt in das Array eingetragen werden?

extern string Sessions_begin="15:31;14:11";
extern string Sessions_end="22:32;18:12"; 

int mas_time_begin[10][2], mas_time_end[10][2];  //первый - № сессии,
            // второй время[][1]-первый элемень время(часы), [][2]-минуты.

//
str_len_begin=StringLen(Sessions_begin)

Print("Длина str_len_begin="+str_len_begin);
  for (n=1,i=0; i<=str_len_begin; i+=6,n++)
  {
   mas_time_begin[n][1]=StrToInteger(StringSubstr(Sessions_begin,i,2));
   mas_time_begin[n][2]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
   mas_time_end[n][1]=StrToInteger(StringSubstr(Sessions_end,i,2));
   mas_time_end[n][2]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
  Print("n= "+n);
  Print("i= "+i);

  Print("Начало сессии "+n+" в(вывод через Print) "+StringSubstr(Sessions_begin,i,2)+":"+StringSubstr(Sessions_begin,i+3,2)); 
  Print("Конец сессии "+n+" в (вывод через Print) "+StringSubstr(Sessions_end,i,2)+":"+StringSubstr(Sessions_end,i+3,2));
  Print("Начало сессии "+n+" в(вывод через Массив) "+mas_time_begin[n][1]+":"+mas_time_begin[n][2]);
  Print("Конец сессии "+n+" в(вывод через Массив) "+mas_time_end[n][1]+":"+mas_time_end[n][2]);
  }

Hier ist, was ich jetzt habe:

http://savepic.ru/1410881.gif

 

Господа, не подскажете ли? Есть проблема в сортировке ордеров при включении или (наложении) отремонтированного советника на имеющиеся уже, выставленные отложки. Я тут пытался соорудить коды для поиска, распознавания и переприсвоения имеющихся номеров ордеров, чтоб советник воспринимал их как свои, но результат какой-то неопределённый. Советник при включении начинает лупить некоторые отложки в тоже место с теми же параметрами.....Может у кого есть коды или мысли по этой теме, для многих ордеров?

Vielen Dank an alle, die geantwortet haben.

 
Hedin:


Liebe Programmierer,
bitte beantworten Sie folgende Frage:

Können Sie mir sagen, warum die Daten aus der Zeichenkette nicht korrekt in das Array eingetragen werden?

Das ist es, was ich jetzt bekomme:

http://savepic.ru/1410881.gif

Die Arraygröße in der zweiten Dimension ist nicht korrekt eingestellt:

int mas_time_begin[10][2], mas_time_end[10][2];  //первый - № сессии,

Array-Elemente beginnen mit 0, und Sie befinden sich in diesen Einträgen

mas_time_begin[n][2]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
mas_time_end[n][2]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
Daten in Zelle 3 (0, 1, 2) schreiben wollen, obwohl die zweite Dimension mit zwei gesetzt ist (nur die Indizes 0, 1 können verwendet werden).

Lösung: Entweder das Array in der zweiten Dimension vergrößern

int mas_time_begin[10][3], mas_time_end[10][3];  //первый - № сессии,

oder die Indizes beim Schreiben der Werte neu zu schreiben

mas_time_begin[n][0]=StrToInteger(StringSubstr(Sessions_begin,i,2));
mas_time_begin[n][1]=StrToInteger(StringSubstr(Sessions_begin,i+3,2));
mas_time_end[n][0]=StrToInteger(StringSubstr(Sessions_end,i,2));
mas_time_end[n][1]=StrToInteger(StringSubstr(Sessions_end,i+3,2));
 
rosomah:

Meine Herren, können Sie uns beraten? Ich habe ein Problem mit der Sortierung von Aufträgen, wenn ich einen reparierten EA auf bereits platzierten, ausstehenden Aufträgen aktiviere oder (überlagere). Ich habe versucht, Codes zu erstellen, um nach verfügbaren Auftragsnummern zu suchen und diese neu zuzuordnen, damit der EA sie als seine eigenen erkennt, aber das Ergebnis ist unbestimmt. Wenn ich es aktiviere, beginnt der EA, einige ausstehende Aufträge an der gleichen Stelle mit den gleichen Parametern zu platzieren..... - Hat jemand irgendwelche Codes oder Vorschläge zu diesem Thema für viele Aufträge?

Vielen Dank für Ihr Feedback.

Es hängt davon ab, wie der EA "owl - alien" definiert, wenn durch eine magische Zahl, dann gibt es nichts, was Sie mit bereits platzierten schwebenden Aufträgen tun können, da dieser Parameter nicht für eine bereits platzierte Bestellung geändert werden kann.
Wenn er Tickets, nehmen wir an, in globalen Variablen speichert, dann ist es schon einfacher, die bereits vorhandenen Tickets können "zur Basis hinzugefügt" werden. Das ist also die wichtigste Frage, die sich Ihnen in diesem Stadium stellt. Wie wird sie bestimmt?
 
ToLik_SRGV:

Es hängt davon ab, wie der EA "owl - alien" definiert. Wenn es durch eine magische Zahl festgelegt ist, dann hat es nichts mit bereits platzierten schwebenden Aufträgen zu tun, da dieser Parameter für einen bereits platzierten Auftrag nicht geändert werden kann.

Ja, und wenn es ein Raster verschiedener schwebender Aufträge gibt, in dem sich Lücken bilden, weil einige schwebende Aufträge ausgelöst wurden, andere verschoben wurden usw. Sie müssen erkannt, neu nummeriert und mit einem "neuen" Expert Advisor gefüllt werden. Natürlich können wir das auch manuell machen, aber... Warum sich dann mit MTS herumschlagen? Für eine Bestellung können wir sie zumindest von N. Morzhov erhalten:

int poisk;

if(poisk==0)

{ int k;

for(k=0; k<OrderTotal();k++)

{ if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==false)break;

if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=Magic)cjntinue

ticket_buy1=OrderTicket();

poisk=1; }}

aber wie geht man mit einer Reihe von Aufträgen um?

 
Wer weiß, wann das mql5-Tutorial erscheinen wird?
 
Abzasc:
Wer weiß, wann das mql5-Tutorial erscheinen wird?

https://www.mql5.com/ru/forum/491