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

 
 
waitra >> :

int AnzahlOfPos_HISTORY

Ich habe es ausprobiert, es zählt nur die Anzahl der offenen aktuellen Positionen, es zählt nicht die Historie, es setzt den Wert auf Null zurück, wenn der Auftrag geschlossen wird, vielleicht sollte etwas anderes geändert werden?

Hier habe ich es getan. Ich habe eine andere Funktion von I.Kim genommen und sie ein wenig verändert.

Es funktioniert wie ein Uhrwerk:

Die Funktion START kann zur Steuerung verwendet werden.

Comment ("ордера на истории= ",NumberOfPos_HISTORY_2(NULL,-1,Magic));

Und hier ist die Funktion selbst:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru            |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                  |
//|  Описание : Возвращает кол-во ордеровиз из  истории счета  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                           |
//|    sy - наименование инструмента   (""   - любой символ, |
//|                                     NULL - текущий символ)        |
//|    op - операция                   (-1   - любая позиция)       |
//|    mn - MagicNumber                (-1   - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfPos_HISTORY_2 (string sy="", int op=-1, int mn=-1) {
     int      i, k=OrdersHistoryTotal(), kp=0;
  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {               
                if (OrderProfit()<0 || OrderProfit()>=0) kp++;           
            }  } } } }  }  return( kp);}


 

Hallo zusammen!!!

//+------------------------------------------------------------------+
//|                                                   SimpleMA22.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern int       MAFP=21;
extern int       MASP=55;
extern double    Lots=0.1;
extern int       StopLoss=60;
extern int       TakeProfit=30;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
   
bool CheckOrders(int Type)
{
 bool Result= True;
 for(int i=0; i<OrdersTotal(); i++)
  if(OrderSelect( i, SELECT_BY_POS))
   if(OrderMagicNumber()== MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()== Type)
        {
         if( Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result= False;
         if( Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result= False;
         } 
        else Result= False;
 return( Result); 
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
    // открытие позиции Buy покупка
    if( MAF_1 < MAS_1 && MAF_0 > MAS_0)
     if( CheckOrders(OP_SELL))
      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    
    // Открытие позиции Sell продажа  
    if( MAF_1 > MAS_1 && MAF_0 < MAS_0)
     if( CheckOrders(OP_BUY))
      {
       if( StopLoss <= StopLevel+ Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//----
   return(0);
  }//+------------------------------------------------------------------+


Gehirne gedämpft, gedämpft und ausgeschaltet.....

Wahrscheinlich ist es einfacher, herauszufinden, wie man die Betrunkenen dazu bringt, einen Graben auszuheben oder die Müllabfuhr durch Penner zu organisieren als..........

In diesem Thread wurde irgendwo am Anfang ein ähnliches Problem wie das meine angesprochen. Lesen, lesen.... Ich verstehe es immer noch nicht, und das Gespräch drehte sich um Flaggen...

Die Idee ist einfach. SimpleMA, aber es ist ein wenig verändert, aber das macht nichts.

Wessen fi sollte hinzugefügt werden, wenn ein EA (zu kaufen) kaufen würde, würde eine Bestellung von TP ausgelöst werden und die nächste Bestellung würde unter der Bedingung des Verkaufs gestellt werden, dh, MACC Kreuzung für den Verkauf?

Unabhängig davon, ob es eine weitere Bedingung gibt oder nicht.

 

Vielleicht kann die Funktion https://www.mql5.com/ru/forum/107476/page21 helfen.

Funktion isCloseLastPosByTake().
Diese Funktion gibt ein Flag zum Schließen der letzten Position durch Take zurück.

Flagge oben - Wahr - TakeProfit wurde ausgelöst.

Flagge gesenkt - Falsch - Position wurde aus einem anderen Grund geschlossen.


Die Funktion selbst sollte ganz am Ende des Codes platziert werden. Zur Verkaufsbedingung hinzufügen:

if( isCloseLastPosByTake( NULL, OP_BUY, MagicNumber) ==true) {//продаем



 
xmurik писал(а) >>
Zum Währungspaar EUR/USD.
//+------------------------------------------------------------------+
//|                                                       скрипт.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int kolvo_barov = 1000;
   double start_price = iOpen(Symbol(),0, kolvo_barov);
   int handle;
   handle=FileOpen("my_data.csv", FILE_WRITE|FILE_CSV, '\t');
   if( handle>0) {
      while( kolvo_barov>1) {
         if (iHigh(Symbol(),0, kolvo_barov)> start_price + 0.01) {
            FileWrite( handle,"+100");
            start_price = start_price + 0.01;
         }      
         if (iHigh(Symbol(),0, kolvo_barov)< start_price + 0.01) {
            FileWrite( handle,"-100");
            start_price = start_price - 0.01;
         }      kolvo_barov--;
      }
      FileClose( handle);
   }
   return(0);
}
//+------------------------------------------------------------------+
Sehen Sie sich das an. Nur habe ich es nicht überprüft. Es können Fehler auftreten.
 

Gute Leute. Ich verstehe nicht (siehe Bild), warum Momentum nicht Momentum ist :).


Momentum

Können Sie bitte erklären, warum sie über Null liegt?
 
rid писал(а) >>

Ich habe Folgendes getan. Ich habe eine andere Funktion von I. Kim übernommen und sie ein wenig verändert.

Es funktioniert wie ein Uhrwerk:

Die START-Funktion kann zur Kontrolle eingesetzt werden.


Und hier ist die Funktion selbst:

Ja, es funktioniert! Herzlichen Dank ! Ich danke Ihnen! >> Viel Glück für Sie!

 
warlock писал(а) >>

Hilfe!!! der Experte soll Trades bei der Eröffnung einer neuen Kerze eröffnen, aber zusätzlich zur Eröffnung am Anfang der Kerze, eröffnet er "links" chaotisch...

Außerdem wird nach der Zuweisung von High und Low nicht mehr gekauft, sondern nur noch verkauft...

Und wir können nicht genau schauen, was OrderSend() enthält. Der eine scheitert aus Versehen, der andere scheitert.

if ( AllowBUY) 
   tick=OrderSend(Symbol(),OP_SELLSTOP, Lot, price1,3,( price1- SL*Point)* loss,( price1- TP*Point)* profit,"scriptSELLstop",CLR_NONE, expiration);
if ( AllowSELL) 
   tick=OrderSend(Symbol(),OP_SELLSTOP, Lot, price2,3,( price2+ SL*Point)* loss,( price2- TP*Point)* profit,"scriptSELLstop",CLR_NONE, expiration);
 
warlock >> :

Hilfe!!! der Experte soll Trades bei der Eröffnung einer neuen Kerze eröffnen, aber er eröffnet nicht nur am Anfang der Kerze, sondern auch chaotisch "links"...

Außerdem habe ich nach der Zuweisung von Hoch und Tief aufgehört zu kaufen... nur noch zu verkaufen...

Danke... saß eine Stunde lang... Ich konnte nicht herausfinden, was los war... Manchmal braucht man jemanden, der einem die Augen für Fehler öffnet...

 
Hallo Leute, kann jemand helfen, einen AC-Indikator-Ratgeber zu schreiben?
Grund der Beschwerde: