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

 

Wäre es richtig, die Gewinne aus den Geldautomaten zu übertragen?

(OrderProfit()+OrderCommission()+OrderSwap())/OrderLots()*MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE))
 
Guten Tag, bitte helfen Sie mir, die Funktionen zu verstehen und zu verstehen, wie es funktioniert, vielen Dank im Voraus.
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Модификация одного предварительно выбранного ордера.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    pp - цена установки ордера                                              |
//|    sl - ценовой уровень стопа                                              |
//|    tp - ценовой уровень тейка                                              |
//|    ex - дата истечения                                                     |
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1,double sl=0,double tp=0,datetime ex=0) 
  {
   bool   fm;
   color  cl=IIFc(OrderType()==OP_BUY
                  || OrderType()==OP_BUYLIMIT
                  || OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
   double op,pa,pb,os,ot;
   int    dg=MarketInfo(OrderSymbol(),MODE_DIGITS),er,it;

   if(pp<=0) pp=OrderOpenPrice();
   if(sl<0 ) sl=OrderStopLoss();
   if(tp<0 ) tp=OrderTakeProfit();

   pp=NormalizeDouble(pp, dg);
   sl=NormalizeDouble(sl, dg);
   tp=NormalizeDouble(tp, dg);
   op=NormalizeDouble(OrderOpenPrice() , dg);
   os=NormalizeDouble(OrderStopLoss()  , dg);
   ot=NormalizeDouble(OrderTakeProfit(), dg);

   if(pp!=op || sl!=os || tp!=ot) 
     {
      for(it=1; it<=NumberOfTry; it++) 
        {
         if(!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
         while(!IsTradeAllowed()) Sleep(5000);
         RefreshRates();
         fm=OrderModify(OrderTicket(),pp,sl,tp,ex,cl);
         if(fm) 
           {
            if(UseSound) PlaySound(SoundSuccess); break;
              } else {
            er=GetLastError();
            if(UseSound) PlaySound(SoundError);
            pa=MarketInfo(OrderSymbol(), MODE_ASK);
            pb=MarketInfo(OrderSymbol(), MODE_BID);
            Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it);
            Print("Ask=",pa,"  Bid=",pb,"  sy=",OrderSymbol(),
                  "  op="+GetNameOP(OrderType()),"  pp=",pp,"  sl=",sl,"  tp=",tp);
            Sleep(1000*10);
           }
        }
     }
  }
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="",int op=-1,int mn=-1) 
  {
   double po,pp;
   int    i,k=OrdersTotal();

   if(sy==NULL) sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            po=MarketInfo(OrderSymbol(),MODE_POINT);
            if(mn<0 || OrderMagicNumber()==mn) 
              {
               if(OrderType()==OP_BUY) 
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_BID);
                  if(pp-OrderOpenPrice()>=TrailingStart*po) 
                    {
                     if(OrderStopLoss()<pp-(TStop_Buy+TrailingStep-1)*po) 
                       {
                        ModifyOrder(-1,pp-TStop_Buy*po,-1);
                       }
                    }
                 }
               if(OrderType()==OP_SELL) 
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_ASK);
                  if(OrderOpenPrice()-pp>=TrailingStart*po) 
                    {
                     if(OrderStopLoss()>pp+(TStop_Sell+TrailingStep-1)*po || OrderStopLoss()==0) 
                       {
                        ModifyOrder(-1,pp+TStop_Sell*po,-1);
                       }
                    }
                 }
              }
           }
        }
     }
  }
//+----------------------------------------------------------------------------+
 
lihn:

Warum haben sie den Autor von Igor Kims Funktionen gelöscht?! Aus Respekt vor dem Autor, aber es ist obligatorisch, mit der Angabe der Urheberschaft zu veröffentlichen!

Und es ist besser, Ihre Frage an den Autor in seiner Branche zu richten! Sie können es über eine Suche oder Google finden!

 

Können Sie mir sagen, ob es möglich ist, mehrfarbige Indikatoren in MQL4 zu zeichnen? Wo kann ich ein Beispiel finden?


Die MQL4-Dokumentation enthält INDICATOR_COLOR_INDEX, aber das Thema wird überhaupt nicht behandelt. Ich habe ein Beispiel in MQL5 gefunden - https://www.mql5.com/ru/articles/135.

Er lässt sich erfolgreich kompilieren, funktioniert aber nicht wie vorgesehen. Die im Beispiel verwendete Funktion PlotIndexSetInteger wurde erfolgreich kompiliert, obwohl sie in der MQL4-Dokumentation nicht erwähnt wird.


Es gibt noch eine weitere Ungereimtheit: Das MQL4-Dokument enthält ein ähnliches Beispiel in der Beschreibung der Funktion ArrayCopy, die ebenfalls die Funktion PlotIndexSetInteger verwendet.


Haben sich die Entwickler in ihrem eigenen Wald verirrt, oder was habe ich übersehen?

 
Dubovik:

Wissen Sie, ob es möglich ist, verschiedenfarbige Indikatoren in MQL4 zu zeichnen? Wo kann ich ein Beispiel finden?


Die MQL4-Dokumentation enthält INDICATOR_COLOR_INDEX, aber das Thema wird überhaupt nicht behandelt. Ich habe ein Beispiel in MQL5 gefunden - https://www.mql5.com/ru/articles/135.

Er lässt sich erfolgreich kompilieren, funktioniert aber nicht wie vorgesehen. Die im Beispiel verwendete Funktion PlotIndexSetInteger wurde erfolgreich kompiliert, obwohl sie in der MQL4-Dokumentation nicht erwähnt wird.


Es gibt noch eine weitere Diskrepanz: das MQL4 Dokument enthält ein ähnliches Beispiel in der Beschreibung der ArrayCopy Funktion und die PlotIndexSetInteger Funktion wird dort ebenfalls verwendet.


Haben sich die Entwickler in ihrem eigenen Wald verirrt, oder was übersehe ich?

Es gibt so viele Farben, wie es Puffer gibt. Suchen Sie in der Dokumentation, in der Code Base, in Artikeln und im Forum nach ihnen! Und Google ist die Rettung!
 
borilunad:
So viele Farben, so viele Puffer, schau in die Dokumentation, Codebase, Artikel und das Forum! Und Google ist die Rettung!

Das meine ich nicht, ich meine Indikatoren, die einen Puffer wie diesen hinzugefügt haben:

 SetIndexBuffer(4,buffer_color_line,INDICATOR_COLOR_INDEX);
 
Dubovik:

Das meine ich nicht, ich meine Indikatoren, die einen Puffer wie diesen hinzugefügt haben:

Dieser Parameter funktioniert nicht im Vierfachen. So viele Puffer, so viele Farben
 
Ist das in mcl4?!
 
Ja, in MQL4. Es gibt etwas in der Dokumentation, das nicht ganz klar ist und nicht wirklich funktioniert.
 
Dubovik:
Ja, in MQL4. Es gibt etwas in der Dokumentation, das nur bruchstückhaft beschrieben ist, aber nicht wirklich funktioniert.
Seltsam, normalerweise ist es zu spät, um es in das Dokument einzutragen, aber jetzt ist es genau andersherum! So wird es sein! Nur wann?!