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

 
MaxZ:

Gibt es MT4-Konten, bei denen man ein Schloss mit negativem Eigenkapital eröffnen kann? Ich frage das nur aus Interesse. Der Streit wurde in einem anderen Forum ausgetragen. Mir wurde gesagt, dass es solche Konten gibt! :DD

Damit es keine unnötigen Fragen gibt, hier ein Beispiel:

Sie haben einen Handel mit dem Volumen N eröffnet. Ihr Terminal sagt nach der Zeile "Free:": "-XXX.XX"... Könnten Sie ein Schloss mit Volumen N! öffnen? Ich glaube nicht, dass dies bei einem normalen Konto möglich ist... Und mir wurde gesagt, dass es einige Sonderkonten gibt! :)))))) Ich kann es nicht glauben...

Die Antwort ist erhalten... Ich bin schockiert...


borilunad:

Und ich kann es nicht glauben! Ruht Onkel Kolja dort?

Wenn das Konto im Minus ist, werden normalerweise alle Positionen zwangsweise geschlossen. Etwas anderes ist es, wenn es Ihnen gelungen ist, eine Verlustposition vor dem Minus zu eröffnen, da sich die Marge für die Verlustposition nicht erhöht, während Sie nicht einmal eine Position in derselben Richtung eröffnen können.

Aber es passiert! Und Onkel Kolya ruht sich nicht aus, er ist bereit, an die Tür zu klopfen! :D

Und Sie sind über etwas verwirrt... Wenn Ihre freien Mittel weniger als Null geworden sind, sind Sie gezwungen, den unrentabelsten Handel nur dann zu schließen, wenn der StopOut 100% beträgt. Und bei 50 % werden Ihre freien Mittel für lange Zeit im Minus sein! :)))

 
Hallo, Leute! Wo oder wie erfahre ich, wie viel ich maximal setzen kann?
 
MaxZ:

Gibt es MT4-Konten, bei denen man ein Schloss mit negativem Eigenkapital eröffnen kann? Ich frage das nur aus Interesse. Der Streit wurde in einem anderen Forum ausgetragen. Mir wurde gesagt, dass es solche Konten gibt! :DD

Damit es keine unnötigen Fragen gibt, hier ein Beispiel:

Sie haben einen Handel mit dem Volumen N eröffnet. Ihr Terminal sagt nach der Zeile "Free:": "-XXX.XX"... Können Sie ein Schloss mit der Lautstärke N öffnen! Ich glaube nicht, dass dies bei einem regulären Konto der Fall ist. Und mir wurde gesagt, dass es einige Sonderkonten gibt! :)))))) Ich kann es nicht glauben...

Die Antwort ist erhalten... Ich bin schockiert...

Diese "Köche" wissen nicht mehr, wie man den "dummen Pinocchio" ködert!

Kolya Morzhov treffe ich nur in der Testphase. Ich habe meine Einschränkungen in den Arbeitsrat gegeben, um nicht zu weit zu gehen! ;))

 
Beowulf:
Hallo, Leute! Wo oder wie erfahre ich, wie viel ich maximal setzen kann?

double MaxLot = MarketInfo(Symbol(), MODE_MAXLOT);
//В следущий раз не ленитесь заглянуть в Доку, а то тут могут послать к телепату!
 
borilunad:

Er hat bereits in einem anderen Thread danach gefragt. Sie wurde beantwortet... Aber er versteht den Code nicht - er hat selbst darüber geschrieben.

Er möchte ein Skript (fertige Lösung - eine Taste drücken (Skript ausführen) - auf den Bildschirm schauen).

 

r772ra, wow, ich sollte den Kim-Funktionen mehr Aufmerksamkeit schenken, danke!

 
Roman.:

Er hat bereits in einem anderen Thread danach gefragt. Sie wurde beantwortet... Aber er versteht nichts von Code - er hat selbst darüber geschrieben.

Es braucht ein Skript (fertige Lösung - eine Taste drücken (Skript ausführen) - auf den Bildschirm schauen).



Es bleibt nur noch eines übrig: ihn einzuladen, unsere Konten zu investieren! :))

 
borilunad:


Es bleibt nur noch eines zu tun: ihn einzuladen, unsere Konten zu investieren! :))


Eine gute Idee, aber schwer umzusetzen
 

 

hoz:

Ich bin schon ein bisschen verwirrt. Hier sind 3 Funktionen, von denen jede ein bestimmtes Signal für einen bestimmten Indikator empfängt.

Diese Funktion empfängt allgemeine Signale von allen Indizes und trifft die Entscheidung zum KAUF oder VERKAUF.

Dies ist die Hauptfunktion, die das allgemeine Signal empfängt; hier erhalten wir die Werte der Indizes durch die Schleife, um durch alle Balken zu gehen, natürlich... Und dann werden die erhaltenen Werte per Verweis an die entsprechenden Funktionen weitergegeben, wo diese Werte benötigt werden, d. h. an die Funktionen:

int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2)

int GetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2)

void GetMomentumSignal() kann im Prinzip auch dort platziert werden.

Somit werden alle Berechnungen der Indizes in einer einzigen Hauptfunktion der Signalgewinnung zusammengefasst. In diesem Fall ist alles logisch...

TarasBY:

Victor! Sie haben die Logik, aber das Wissen ist nicht so weit. Wenn Sie dranbleiben, wird Ihnen das erste helfen, weiter zu kommen als das Lehrbuch, und um das zweite zu "erobern", müssen Sie mit ihm (dem Lehrbuch) beginnen. Wenn Sie (noch) nicht bereit sind, Ihre eigene logische Codestruktur aufzubauen, gehen Sie zurück zur alphabetischen Version.
P.S. Was fällt Ihnen an Ihrem Code auf?

In der Funktion GetSignal() kann für die Suche nach der Kreuzung von zwei Linien die for-Schleife verwendet werden, aber es ist besser, die while-Schleife zu verwenden, obwohl dies eine persönliche Vorliebe ist. Zunächst müssen Sie eine Klammer wie in "Execution cannot be pardoned" setzen, damit Ihr Code das ausführt, was Sie gerade gesagt haben. Aus irgendeinem Grund fehlen in dieser (Ergebnis-)Funktion die Ergebnisse von zwei Funktionen: GetStochSignal() und GetMomentumSignal() - dies ist jedoch unerheblich.

in den Funktionen GetCrossingMa() und GetStochSignal() macht es KEINEN Sinn, Parameter durch Referenzen zu übergeben, denn es würde Sinn machen, wenn diese Variablen innerhalb der Funktion ihre Werte ändern.

Die void-Funktion GetMomentumSignal() gibt NICHTS zurück.

Obwohl ich zugeben muss, dass es von außen "schlechter zu sehen" ist... :)))

Hier ist eine alternative Variante der Funktion, die Signale von MAsh(s) erhält:

//IIIIIIIIIIIIIIIIIII==================CONSTANS=================IIIIIIIIIIIIIIIIIIIIII+
#define       BULL          0
#define       BEAR          1
#define       STOP         -1
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
extern int    Use_ChangeTrend.MA      = 0;           // 0 - off; Брать сигнал на смене тренда: 
//1 - ТОЛЬКО на первом; 2 - ТОЛЬКО не на первом; 3 - на всех
extern double MA_K_Period             = 3.0;         // коэффициент получения периода 2-ой МАшки.
extern int    MA_Period               = 14;
/*extern*/ int    MA_Shift                = 0;
extern int    MA_Method               = 7;
extern int    MA_Price                = 7;
/*extern*/ int    Color_Mode               = 0;
int           bia_PeriodMA[2];
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем сигнал по наклону MA или по пересечению 2-х MA                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int fGet_SignalMA (string fs_Symbol,                        // Symbol
                   int fi_TF,                               // Таймфрейм
                   double fd_Deviation = 0,                 // расхождение м/у МАшками
                   bool fb_ControlBeginChangeTrend = False, // Контроль начала смены тренда
                   int fi_BarSignal = 1,                    // Бар на котором считываем сигнал
                   int fi_VerificationBars = 1)             // Количество баров для подтверждения сигнала
{
    static int li_preSignal = STOP;
    double lda_MA[2];
    bool   lb_twice = (MA_K_Period > 1.0), lb_Condition;
    int    li_BAR = fi_BarSignal, li_Trend = STOP, li_VerificationBars = 0, li_cmd = 1;
//----
    //---- Если работаем с 2-мя МАшками
    if (lb_twice)
    {
        for (int li_IND = 0; li_IND < 2; li_IND++)
        {lda_MA[li_IND] = iCustom (fs_Symbol, fi_TF, "AllAverages_v2.51", fi_TF, bia_PeriodMA[li_IND], MA_Shift, MA_Method, MA_Price, Color_Mode, 0, li_BAR);}
        //---- На 1-ом проверяемом баре фиксируем расхождение МАшек
        double ld_Deviation = fControl_Deviation (lda_MA, lb_Condition, li_cmd, li_Trend, fd_Deviation);
    }
    //---- Если работаем с 1-ой МАшкой
    else
    {
        for (li_IND = 0; li_IND < 2; li_IND++)
        {lda_MA[li_IND] = iCustom (fs_Symbol, fi_TF, "AllAverages_v2.51", fi_TF, MA_Period, MA_Shift, MA_Method, MA_Price, Color_Mode, 0, li_BAR + li_IND);}
        double ld_Price = fGet_PriceOnBar (PRICE_TYPICAL, fs_Symbol, fi_TF, li_BAR);
        //---- На 1-ом проверяемом баре фиксируем расхождение МАшек
        ld_Deviation = fControl_Deviation (lda_MA, lb_Condition, li_cmd, li_Trend, fd_Deviation);
        if (NDD (li_cmd * (lda_MA[0] - ld_Price)) >= 0.0) return (STOP);
    }
    //---- Если фиксируем на баре пересечение или горизонтальное расположение МА - выходим
    if (ld_Deviation == 0.0) return (STOP);
    int li_cnt = 0;
    while (lb_Condition == true)
    {
        li_BAR++;
        //---- Собираем показания МАшек в массив
        if (lb_twice)
        {
            for (li_IND = 0; li_IND < 2; li_IND++)
            {lda_MA[li_IND] = iCustom (fs_Symbol, fi_TF, "AllAverages_v2.51", fi_TF, bia_PeriodMA[li_IND], MA_Shift, MA_Method, MA_Price, Color_Mode, 0, li_BAR);}
            bool lb_AddCondition = true;
            li_cnt++;
        }
        else
        {
            for (li_IND = 0; li_IND < 2; li_IND++)
            {lda_MA[li_IND] = iCustom (fs_Symbol, fi_TF, "AllAverages_v2.51", fi_TF, MA_Period, MA_Shift, MA_Method, MA_Price, Color_Mode, 0, li_BAR + li_IND);}
            ld_Price = fGet_PriceOnBar (PRICE_TYPICAL, fs_Symbol, fi_TF, li_BAR);
            lb_AddCondition = (NDD (li_cmd * (lda_MA[0] - ld_Price)) < 0.0);
        }
        //---- Фиксируем расхождение МАшек или наклон 1-ой МА
        ld_Deviation = NDD (lda_MA[0] - lda_MA[1]);
        //---- Определяем условия контроля пересечения МАшек или изменение наклона
        if (li_Trend == BULL) lb_Condition = (ld_Deviation >= 0.0); else lb_Condition = (ld_Deviation <= 0.0);
        //---- Производим подсчёт баров, на которых выполняется означенное расхождение
        if (lb_AddCondition)
        {
            if (fd_Deviation != 0.0) {if (MathAbs (ld_Deviation) >= fd_Deviation) li_VerificationBars++;}
            else li_VerificationBars++;
        }
        else li_cnt++;
        //---- Если не отслеживаем начало смены тренда
        if (!fb_ControlBeginChangeTrend) {if (li_VerificationBars == fi_VerificationBars) return (li_Trend);}
        else
        {
            //---- Если баров, на которых выполняются заданные нами условия, > fi_VerificationBars - выходим
            if (li_VerificationBars > fi_VerificationBars) {li_preSignal = STOP; return (STOP);}
            else if (!lb_Condition)
            {
                if (li_VerificationBars == fi_VerificationBars) {return (li_Trend);}
                //---- Если не набрали нужное количество подтверждений сиганала после пересечения
                // или смены наклона - выходим
                else if (li_VerificationBars < fi_VerificationBars) return (STOP);
            }
        }
        //---- Предусматриваем уход от зацикливания (на начале отсчёта)
        if (li_cnt > MA_Period) return (STOP);
    }
//----
    return (STOP);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Контролируем расхождение 2-ух МАшек или наклон 1-ой МАшки                  |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
double fControl_Deviation (double ar_MA[],           // массив входящих значений
                           bool& fb_Condition,       // состояние тренда
                           int& fi_cmd,              // "знак тренда"
                           int& fi_Trend,            // тренд
                           double fd_Deviation = 0)  // расхождение м\у МАшками
{
    double ld_Deviation = NDD (ar_MA[0] - ar_MA[1]);
//----
    //---- Если фиксируем на баре пересечение или горизонтальное расположение МА - выходим
    if (ld_Deviation == 0.0) return (0.0);
    //---- Проверяем расхождение на нужную величину (если задано)
    if (fd_Deviation != 0.0) {if (MathAbs (ld_Deviation) < fd_Deviation) return (0.0);}
    if (ld_Deviation > 0.0) {fb_Condition = (ld_Deviation >= 0.0); fi_Trend = BULL;}
    else {fb_Condition = (ld_Deviation <= 0.0); fi_Trend = BEAR; fi_cmd = -1;}
//----
    return (ld_Deviation);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+

Wie aus den Kommentaren hervorgeht, kann das Signal als Ergebnis einer Neigung von einem МА (bei MA_K_Periode <= 1,0) oder als Ergebnis einer Überschneidung von 2 МА (bei MA_K_Periode > 1,0) erhalten werden. Die Periode des 2. MA wird von selbst (außerhalb dieser Funktion) berechnet:

    bia_PeriodMA[0] = MA_Period;
    bia_PeriodMA[1] = MA_Period * MA_K_Period;

Sie können in der Funktion auch die Bedingung für die Divergenz von 2 MAs angeben (wenn fd_Deviation > 0.0). Sie können auch die Tatsache der Überschneidung verfolgen (fb_ControlBeginChangeTrend = TRUE) oder einfach die Feststellung von Fast und Slow relativ zueinander festlegen.

Um zu sehen, wie dieser Code funktioniert, habe ich einen Indikator in das Archiv gestellt, der Pfeile durch die Signale dieser Funktion zeichnet. Wir starten es mit Signal_MA.tpl (für einen MA) oder Signal_MA2.tpl (für 2 MAs). Übrigens kann es sich bei den MAs um verschiedene Typen handeln.

Dateien:
signal_ma.zip  185 kb
 
TarasBY:

Hier ist eine alternative Variante der Funktion, die Signale von MAs empfängt:

Wie aus den Kommentaren hervorgeht, kann das Signal auf der Grundlage der Neigung eines MA (bei MA_K_Periode <= 1,0) oder auf der Grundlage des Schnittpunkts von 2 MA (bei MA_K_Periode > 1,0) ermittelt werden. Die Periode des 2. MA wird von selbst (außerhalb dieser Funktion) berechnet:

Sie können in der Funktion auch die Bedingung für die Divergenz von 2 MAs angeben (wenn fd_Deviation > 0.0). Sie können auch die Tatsache der Überschneidung verfolgen (fb_ControlBeginChangeTrend = TRUE) oder einfach die Feststellung von Fast und Slow relativ zueinander festlegen.

Um zu sehen, wie dieser Code funktioniert, habe ich einen Indikator in das Archiv gestellt, der Pfeile durch Signale dieser Funktion zeichnet. Übrigens, die MAs können unterschiedlich sein.


Wenn Sie die Arbeit mit dem Indikator beschleunigen möchten, wenden Sie sich bitte an
Grund der Beschwerde: