Ich werde einen kostenlosen mql4-Berater schreiben - Seite 3

 
Andrey Vaskin:
Um Erfahrungen in diesem Bereich zu sammeln, werde ich 25 EAs kostenlos für Ihre interessanten Ideen und Strategien schreiben

1. schauen Sie sich den Preis cupFORTS an.


2.Kaufen, wenn der rote Balken innerhalb von 1 Minute das Dreifache* des blauen Balkens beträgt. Verkaufen Sie, wenn das Gegenteil der Fall ist.


3. eine von Ihnen gekaufte Position zu schließen - wenn der blaue Balken innerhalb von 1 Minute das Dreifache des roten Balkens beträgt. Schließen Sie eine verkaufte Position, wenn der rote Balken innerhalb von 1 Minute dreimal größer war als der blaue Balken.


4) Der Zyklus wiederholt sich.

---


*Das bedeutet 3 Mal oder mehr.

In den Eulenparametern müssen "3 mal" und "1 Minute" eingestellt werden.

Ein StopLoss ist ebenfalls erforderlich.

Ein Bild des Stapels (Volumen der Kauf-/Verkaufsaufträge):

Die Mengen können auch der Marktübersicht entnommen werden:

 
Alexander Pavlov:

1. schauen Sie sich das Preisglas an.


2.Kaufen, wenn der rote Balken innerhalb von 1 Minute das Dreifache* des blauen Balkens beträgt. Verkaufen Sie, wenn das Gegenteil der Fall ist.


3. eine gekaufte Position zu schließen - wenn der blaue Balken innerhalb von 1 Minute das Dreifache des roten Balkens beträgt. Schließen Sie eine verkaufte Position, wenn der rote Balken innerhalb von 1 Minute dreimal größer war als der blaue Balken.


4) Der Zyklus wiederholt sich.

---


*Das bedeutet 3 Mal oder mehr.

In den Eulenparametern müssen "3 mal" und "1 Minute" eingestellt werden.

Ein StopLoss ist ebenfalls erforderlich.

Ein Bild des Stapels (Volumen der Kauf-/Verkaufsaufträge):

Die Mengen können auch der Marktübersicht entnommen werden:

Dies ist MT5, der Autor fragte nur nach Aufgaben unter MT4.
 
Vitaly Muzichenko:

Es geht um Stochastik, RSI, MACD und anderen Schrott namens Oszillatoren, sie zeichnen die Geschichte sehr schön, aber ich habe nicht einen einzigen Expert Advisor getroffen, der auch nur ein Gleichgewicht gehalten hat, geschweige denn einen Gewinn gemacht.

Aber Leute, die sich etwas erhoffen, produzieren ständig diese nutzlosen Indikatoren.

Ich finde es sehr merkwürdig, dass sie mehrere Jahre lang von einer Version von MT zur anderen wechseln. Wer braucht sie? Wahrscheinlich nur für ein Beispiel-Programm-Code, aber die Leute denken, dass auf sie zu handeln ))))

Schrott? OK, zeigen Sie mir ein Beispiel für NICHT-Müll. Und nur weil Sie etwas nicht gesehen haben, heißt das nicht, dass es nicht existiert.
 
Tapochun:
Schrott? Nennen Sie mir ein Beispiel für etwas, das KEIN Müll ist. Und nur weil Sie etwas nicht gesehen haben, heißt das nicht, dass es nicht da ist.
Das Einzige, was ich gesehen habe, das kein Schrott ist, sind die Candlestick-Muster.
 
Vitaly Muzichenko:
Das Einzige, was ich gesehen habe, das nicht abläuft, sind Candlestick-Muster.
Meiner ist auch nicht auslaufend, und das ist Ihr Wort. und es gibt dort keine Muster.
 
Leanid Aladzyeu:
Meine ist auch nicht bündig, und das sind Ihre Worte. und es gibt keine Muster.
Mit Mathematik hatte ich im Moment nichts am Hut. Ich habe über reine Indikatoren geschrieben. Ihre ist gut.
 

Hilfe zur Lösung

EA setzt 4 ausstehende Aufträge

2 Kauf- und Verkaufsstopp

2 Kauf- und Verkaufslimit

Ich weiß nicht, wie man schwebende Aufträge austauschen kann, aber ich weiß nicht, in welchem Abstand ein Auftrag erteilt werden sollte.

das Gleiche gilt für Kaufpositionen und Verkaufsstopps

Nachdem alle Aufträge erteilt wurden, sollte ein neuer Auftrag erteilt werden, bevor ein neuer Auftrag ausgelöst wird.

Ich habe viele Verlustpartien, aber sie wären im Minus, wenn ich die Aufträge wechseln würde.


//| iiiiiiiiiiiiiiiiii_buy_sell.mq4 |

//| |

//| |

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

extern int N = 100; // Buchten und Verkäufe (getrennt gezählt) dürfen jeweils hundert Stück haben


extern double Lots = 0.01; // Los


extern int PROF = 100; // Schleppnetzstopp, mit hundert Pips Gewinn beginnen

extern int TS = 200; // Ziehen Sie es auf Anschlag hinter den Preis

extern int STEP = 200; // Abstand zwischen den Geboten

extern int TP = 10000; //Bestellung aufnehmen

extern int SL = 10000; // Bestellungen entgegennehmen

extern bool Buy = false; // nur kaufen

extern bool Sell = true; // nur verkaufen

extern double PROSADKA = 0,5; // wenn das Eigenkapital gleich oder kleiner als dieser Bruchteil des Saldos ist

extern int magicbuy = 777;

extern int magicsell = 888;


int M;

double buystop_OP, sellstop_OP;

double selllimit_OP, buylimit_OP;


int start()

{

// ---------------------------------------------------------------------


// ---------------------------------------------------------------------

// sehen, welche Aufträge wir haben:

int buy = 0,sell = 0;

int buystop = 0,sellstop = 0;

int selllimit = 0,buylimit = 0;

int buys = 0, sells = 0;

int Gesamt = 0;

for(int i = 0; i < OrdersTotal(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) weiter;

if(Auftragsart() == OP_BUYSTOP)

buystop = OrderTicket();

if(OrderType() == OP_BUYLIMIT)

buylimit = OrderTicket();

if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)

kauft ++;

if(OrderType() == OP_SELLSTOP)

sellstop = OrderTicket();

if(OrderType() == OP_SELLLIMIT)

selllimit = OrderTicket();

if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )

Verkauft ++;

Insgesamt ++;

}

// ---------------------------------------------------------------------

int LET = 0;

wenn (KontoEigenkapital()/Kontostand() < PROSADKA)

LET = 1; // wenn der Drawdown hoch ist - Verbot, neue Positionen zu platzieren

// ---------------------------------------------------------------------

// Einstellung neuer Gewerke :

if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // einmal pro Minute

{

if ( buystop < 1 && buys < N && Buy == true)

{

buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits);

buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);

}

if ( buylimit < 1 && buys < N && Buy == True)

{

buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits);

buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red);

}

if ( sellstop < 1 && sells < N && Sell == true)

{

sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits);

sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

}

if ( selllimit < 1 && sells < N && Sell == True)

{

selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits);

selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue);

}

M = iTime(Symbol(),1,0);

}

// ---------------------------------------------------------------------

// Wenn der Auftrag weiter als TS vom Preis entfernt ist, ziehen Sie ihn näher heran:

if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue);

if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)

OrderModify(Sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange);

if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)

OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue);

if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange);

// ---------------------------------------------------------------------

// Wenn der Auftragsgewinn größer ist als der PROF-Stopp und weiter als TS vom Kurs entfernt ist, wird dieser Stopp hinter den Kurs geschoben:

for(i = 0; i < OrdersTotal(); i ++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue);

if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))

OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red)

}

zurück(0);

}

 

Der Code sollte wie folgt formatiert sein (SRC):

//|                                   iiiiiiiiiiiiiiiii_buy_sell.mq4 |

//|                                                                  |

//|                                                                  |

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

extern int N = 100;       // баев и сэллов (считаем отдельно) разрешаем по стока штук иметь



extern double Lots = 0.01;  // лот



extern int PROF = 100;    // тралить стоп начнем с профита во стока пипсов

extern int TS = 200;      // тащить его станем на стока сзади пип за ценой

extern int STEP = 200;    // расстояние меджу отложками

extern int TP = 10000;     // тейк ордеров

extern int SL = 10000;     // тейк ордеров

extern bool Buy = false;    // только покупать

extern bool Sell = true;   // только продавать

extern double PROSADKA = 0.5;   // когда эквити равно или менее вот такой части от баланса

extern int magicbuy = 777;

extern int magicsell = 888;



int M;

double buystop_OP, sellstop_OP;

double selllimit_OP, buylimit_OP;



int start()

  {

             // ---------------------------------------------------------------------

         



             // ---------------------------------------------------------------------

             // смотрим, какие ордера у нас есть:

                 int buy = 0,sell = 0;

                 int buystop = 0,sellstop = 0;

                 int selllimit = 0,buylimit = 0;

                 int buys = 0, sells = 0;

                 int Total = 0;

                 for(int i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                        if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue;

      

                        

                        

                           if(OrderType() == OP_BUYSTOP)

                              buystop = OrderTicket();

                                

                           if(OrderType() == OP_BUYLIMIT)

                              buylimit = OrderTicket();

                              

                           if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)   

                              buys ++;

                           

                           if(OrderType() == OP_SELLSTOP)

                              sellstop = OrderTicket();

                              

                           if(OrderType() == OP_SELLLIMIT)

                              selllimit = OrderTicket();

                              

                            if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )

                              sells ++;    

                        

                        Total ++;       

                   }

             

             

           

             // ---------------------------------------------------------------------

                 int LET = 0;

                 if (AccountEquity()/AccountBalance() < PROSADKA)

                    LET = 1;  // если просадки до фига - запрет на выставление новых отложек

           

             // --------------------------------------------------------------------- 

             // выставление отложек :

             if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // раз в минуту

               {   

                 

                 if ( buystop < 1 && buys < N && Buy == true)

                     {

                        buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits);

                        buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);

                     }

                     

                if ( buylimit < 1 && buys < N && Buy == True)

                     {

                        buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits);

                        buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red);     

                     }

                     

                 if ( sellstop < 1 && sells < N && Sell == true)

                     {

                        sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits);

                        sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);

                     }

                

                if ( selllimit < 1 && sells < N && Sell == True)

                     {

                       selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits);

                       selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue);

                     }

                     

                

                

                 M = iTime(Symbol(),1,0);

               }

             

             // --------------------------------------------------------------------- 

             // еси отложки дальше чем TS от цены, подтаскиваем их поближе :

             if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)

                OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)

                OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange);

             

             if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)

                OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue);

             

             if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)

                OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange);

            

             // --------------------------------------------------------------------- 

             // еси профит ордера больше PROF  стоп его дальше чем TS от цены, тралим этот стоп за ценой :

             for(i = 0; i < OrdersTotal(); i ++)

                   {

                     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

                     

                        if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue);

             

                        if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits))

                           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red);

             

                   }

             

          

   return(0);

  }
 
Andrey Vaskin:

Um Erfahrungen in diesem Bereich zu sammeln, werde ich 25 EAs kostenlos für Ihre interessanten Ideen und Strategien schreiben

Nur noch 19 EAs übrig

Guten Tag, ich habe in einem anderen Thread hier noch einmal geschrieben.


Ich habe eine Strategie für binäre Optionen. Im Allgemeinen ist die Essenz die folgende: Mit einem gleitendenDurchschnitt mit einer Periode von 20 identifiziere ich den Trend, mit dem ADX definiere ich seine Stärke (in der Regel bei einem visuellen Wert über 25 definiere ich ihn als stark), mit der grafischen Analyse definiere ich Einstiegspunkte (in der Regel Morgen-, Abendsterne, Hämmer und "hängende Früchte", Doji mit symmetrischen Schatten ziehe ich nicht in Betracht, da sie meiner Meinung nach widersprüchlich sind). Beim Schließen einer Kerze mit dem gewünschten Modell steige ich um 5 Uhr ein (ich habe die Statistik manuell über 6 Monate auf D1 überprüft: bestenfalls ein Signal während 6 Monaten. H4 wird wegen der unterschiedlichen Schlusszeit der Kerzengeometrie bei verschiedenen Brokern nicht berücksichtigt).

In der Regel auf die Statistiken von mir erhalten im Durchschnitt jedes Werkzeug 0,7-3% für einen Monat (in der Transaktion wurde immer eingegeben 1% der Kaution) Ich manuell gescannt 5 Werkzeuge (und der Makler, die ich auf Optionen hat 42 Werkzeuge, manuell alle Statistiken zu arbeiten durch viel Arbeit zu tun haben wird). Ich kann später Dateien aus dem Terminal mit meinen Markierungen posten, wo ich eingestiegen bin, zu welchem Zeitpunkt des Verfalls ich Gewinn gemacht habe und wo ich verloren habe usw. Ich habe keine Rücksicht auf den Einfluss von Nachrichten auf die Ergebnisse. Mein Broker verwendet ein MT4-Terminal. Vielleicht hat jemand einen Vorschlag, wie man diese Strategie verbessern kann?

In der Beschreibung habe ich die allgemeine Idee beschrieben, es wäre schön, wenn der Expert Advisor in der Lage wäre, den Wert der Transaktion für jeden Zeitraum automatisch zu ändern (zum Beispiel einmal im Monat).

 
Adelaur:
Manchmal springt der Cursor beim Antworten in das Zitatfeld und kommt nicht mehr heraus. Wie man damit umgeht:Forum: Der Cursor springt ins Zitat, wenn man antwortet