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

 
abeiks:

Wie viele Balken des aktuellen Diagramms von der letzten bekannten Serverzeit (TimeCurrent()) bis zu einem bestimmten Tag bis zum ersten Eröffnungsbalken dieses Tages (TimeDay(Time[80]))?


iBarShift sollte helfen
 
pu6ka:

iBarShift sollte helfen

Ich habe mich den ganzen Tag abgemüht und bin immer noch nicht erfolgreich gewesen. Falsche Erfahrung für mich und mehr. :)

Kann jemand diese Funktion schreiben?

 
abeiks:

Ich habe mich den ganzen Tag abgemüht und bin immer noch nicht erfolgreich gewesen. Falsche Erfahrung für mich und mehr. :)

Kann jemand diese Funktion schreiben?

     int n = 0;                                           // индекс дня, в данном случае 0 - текущий день
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс бара
 
Stells:

Guten Tag.

Ich verstehe nicht, wie das funktioniert

03:00:24 '9473965': Auftrag verkaufen 0.01 GBPUSD Eröffnung bei 0.00000 sl: 1.65314 tp: 0.00000 fehlgeschlagen [Ungültige S/L oder T/P]

mit diesem Code

warum der Eröffnungspreis gleich Null ist


War es heute Abend? Dann lag Ihr Stoploss höchstwahrscheinlich unter dem Eröffnungskurs, und bei einem Verkaufsauftrag sollte der Stoploss-Kurs höher liegen.
 
pu6ka:


Das ist ein bisschen falsch. Ich muss den Beginn des Tages "n" in Sekunden speziell von dieser Funktion TimeDay(Time[80]) erhalten, aber es funktioniert nicht für mich.

 

Ich wollte die Geschichte auf Löcher untersuchen.
Ich habe das getan:

int start() 
{
  if(Time[0] > prev_time ) 
  {
    if( iTime(NULL, PERIOD_M1,0)-iTime(NULL, PERIOD_M1,1) > 200000)
    {
      n=n+1;
      Print("n =",n ,"");
    }
    prev_time = Time[0];
  } 
  
  return (0);
}

Verstehe ich das richtig, dass iTime in Sekunden zählt und 200.000 = 2,31 Tage?

Ist es möglich, dies zu tun? (Scheint zu funktionieren, nur 6 Stück entdeckt)

 
abeiks:

Das ist ein bisschen falsch. Ich muss den Beginn des Tages "n" in Sekunden speziell von dieser Funktion TimeDay(Time[80]) erhalten, aber es funktioniert nicht für mich.


Speziell von dieser Funktion TimeDay(Time[80]) aus muss ich noch einige Zwischenberechnungen durchführen. Sie haben immer noch die Time[80] bar Zeit. Der einfachere Weg wäre der folgende:

     int n = iBarShift(NULL,PERIOD_D1,Time[80]);          // индекс дня, которому принадлежит время бара - Time[80]
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс первого бара дня "n"
 
sv.:

Ich habe darüber nachgedacht, die Geschichte nach Löchern zu durchsuchen.

Hier ist ein sehr nützliches Skript, das ich schon seit Jahren verwende. Wenn das Zitatarchiv hochgeladen wird, müssen Sie zwei Parameter ändern, damit Sie nicht in den Einstellungen herumstochern müssen. Sie sind im Screenshot durch einen roten Rahmen hervorgehoben.

Werfen Sie es auf ein beliebiges Diagramm und warten Sie ein paar Sekunden, bis die Meldung erscheint, wo die Datei mit dem Bericht ist.

 
addict:

der Kaufauftrag wird einmal eröffnet, aber die Anzahl der Verkaufsaufträge ist wieder unendlich


Schreiben Sie eine Funktion wie diese

int start()

if( OrdersTotal()==0 && CountTrades()==0)

{

OrderSend ("EURUSD",OP_BUYLIMIT,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

OrderSend ("EURUSD",OP_BUYSTOP,l,1.36000,5,0,1.36000+tp*Point,"my order",1);

sonst

{
OrderSend ("EURUSD",OP_SELLLIMIT,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
OrderSend ("EURUSD",OP_SELLSTOP,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
}

}

zurück(0);

}

//+------------------------------------------------------------------+

int CountTrades()

{

int count = 0;

for(int trade = OrdersTotal()-1; trade >=0; trade--)

{

OrderSelect(Handel,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

zählen++;

}

}

return(count);

 
pu6ka:


Ausgehend von dieser Funktion TimeDay(Time[80]) müssen Sie einige weitere Zwischenberechnungen durchführen. Sie haben noch die Zeit von barTime[80]. Es wäre einfacher, es auf diese Weise zu tun:


Ich danke Ihnen! :)