[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 117

 
TarasBY:

Zum Beispiel so:

Die ZigZag-Extrema von der aktuellen Zeit bis Time_Control werden in einem Array gesammelt.


void fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                            int fi_TF,                  // таймфрейм
                            datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                            int fi_ExtDepth = 12,       // ExtDepth         
                            int fi_ExtDeviation = 5,    // ExtDeviation
                            int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//---- 
}

Können Sie mir sagen, wie man alle Zickzacklinien zählt, wie viele es sind?

 

Hallo,

Entschuldigung im Voraus für die Grammatik :/. Meine Frage ist, wie man den Kursverlauf umschreibt (per Code)? Ich möchte MT4 verwenden, um die Daten eines anderen Brokers zu analysieren.
 
berezhnuy:

Können Sie mir sagen, wie man alle Zickzacklinien zählt, wie viele es sind?




Geschrieben in der Variablen li_IND, oder wie folgt
count=ArraySize(lda_Extremum);
 
berezhnuy:

Können Sie mir sagen, wie man alle Zickzacklinien zählt, wie viele es sind?

Wenn wir das Folgende tun:

int fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                           int fi_TF,                  // таймфрейм
                           datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                           int fi_ExtDepth = 12,       // ExtDepth         
                           int fi_ExtDeviation = 5,    // ExtDeviation
                           int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//----
    return (li_IND);
}
- gibt die Funktion die Anzahl der seit fdt_TimeControl gefundenen Extrema zurück.
 

Dankeschön

 

Hallo,

Ist es möglich, in den Einstellungen einen Zeitplan mit einer festen Gewichtung 1:1 einzugeben?

Sagen Sie mir, wie man das macht, wenn es möglich ist.

Ich möchte mich im Voraus bei Ihnen bedanken.

 
Können Sie mir bitte sagen, dass meine Candlesticks alle paar Sekunden die Farbe des Charts wechseln und dann wieder schwarz-weiß werden. Das hat es noch nie gegeben. Gibt es eine Möglichkeit, diese Funktion auszuschalten?
 

Nachmittags.

Ich habe einen Code geschrieben, um zwei Pending Orders (BuyStop und SellStop) unter den Bedingungen a=true und b=true zu öffnen. Nach einiger Zeit schließt der EA beide Orders, bis ein neues Signal erscheint, aber manchmal öffnet der EA 2 Pending Orders in dieselbe Richtung. Warum passiert das und wie kann man diesen "Fehler" vermeiden?



if (a=true && b=true)
{
int OrderCount = OrdersTotal();
if (OrderCount>1) return(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green);
Sleep(1000);

ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, slippage, PriceOpen_Buy,0,0,Green);

Sleep(1000*59*TimeFrame);

for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}

zurück(0);

}


Bitte geben Sie mir einen Hinweis.

Ich danke Ihnen im Voraus.

 
r772ra:



Die Werte dieser Variablen werden in den Array-Traceboxen gespeichert.

Ich meine, Sie haben es so verstanden.

Bedingungen und Konditionen,

Danke, ich werde es auf diese Weise versuchen.)
 
Shixan:

Nachmittags.

Ich habe einen Code geschrieben, um zwei Pending Orders (BuyStop und SellStop) unter den Bedingungen a=true und b=true zu öffnen. Nach einiger Zeit schließt der EA beide Orders, bis ein neues Signal erscheint, aber manchmal öffnet der EA 2 Pending Orders in dieselbe Richtung. Warum passiert das und wie kann man diesen "Fehler" vermeiden?

Bitte beraten Sie mich.

Ich danke Ihnen im Voraus.

Vielleicht hier:

if (OrderCount>0) return(0);

Eigentlich ist so vieles nicht "schlafend" - Sleep(1000*59*TimeFrame); - ein neuer Tick kam rein, dein Code startete, zwei Orders öffnen, dann Pause für "2 Stunden" (bedingt), und dann versuchst du zu schließen, wenn plötzlich eine der Orders zu den Preisen, die du vor 2 Stunden bekommen hast, marktfähig wurde - ORIGINAL!!! WER HAT IHNEN DAS BEIGEBRACHT?

Sie können in einer globalen Variablen den Zeitpunkt der Öffnung von Aufträgen festlegen und die Differenz zwischen m³ TimeCurrent() und dem festgelegten Zeitpunkt kontrollieren.

Grund der Beschwerde: