Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1342

 
Порт-моне тв:

Kann mir jemand helfen?

Damit Sie sich nicht mit den Namen der Zahlen herumschlagen müssen, können Sie die Zahl mit den neuesten Punktdaten finden. Und wenn diese Zahl gefunden ist, stellt sich die Frage: Welches Ereignis soll verfolgt werden? Schnittpunkt von horizontal, vertikal, top-down, bottom-up.

Das zu beobachtende Ereignis ist OnChartEvent.

 

Guten Tag!

Früher konnte ich in den Code eine Grenze für die Anzeige der Indikatorwerte auf dem Monitor einfügen. Aber mit diesem Indikator funktioniert nichts. Vielleicht können Sie mir helfen, eine Begrenzung in den Code einzufügen? Bitte!

Ich danke Ihnen!

Dateien:
Tipu_MACD.mq4  18 kb
 

Hallo. Können Sie mir bitte sagen, wie ich den Angebotspreis berechnen kann?

Wie berechne ich einen Geldkurs, bei dem mehrere KAUFEN-Positionen einen Gesamtnullgewinn für Währungspaare haben, bei denen die Basiswährung (erste Währung) der Dollar ist und der Pip-Wert nicht konstant ist und von den Preisen abhängt?

Für Paare, bei denen der Dollar die notierte (zweite) Währung ist und der Pip-Wert konstant ist, habe ich die folgende Funktion abgeleitet,

double Null_BUY(){ 
   double null=0; double summ_count=0; double lots_count=0; double position_count=0;
   for (int i=OrdersTotal()-1; i>=0; i--){
     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
        if (OrderSymbol() == Symbol() ){
            if(OrderType()==OP_BUY ){
               position_count=Bid-((OrderProfit()+OrderSwap()+OrderCommission()) / OrderLots()*MarketInfo(Symbol(), MODE_TICKVALUE))*Point; 
               summ_count+=position_count*OrderLots();
               lots_count+=OrderLots();
            }
         }
      }
   }
   if(lots_count!=0) null=NormalizeDouble(summ_count/lots_count, Digits);
   return(null);
}
 
Forallf:

Können Sie mir einen Tipp geben? Ich habe ein Liniensegment in ein Diagramm eingezeichnet. Ich muss den Anfangs- und Endpreis des Segments kennen. Ist das machbar?

Ich habe ein Beispiel gefunden. Ich habe es so gemacht.

//+------------------------------------------------------------------+
//|                                                        линия.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   //Проверим что есть трендовая линия и она в единственном экземпляре:
   if(ObjectsTotal(OBJ_TREND)!=1)
   {Comment("Нарисуйте 1 трендовую линию!");}

   //Получим ИМЯ трендовой линии:
   for(int i=0;i<ObjectsTotal();i++)
     {
      string name=ObjectName(i);
      if(ObjectType(name)==OBJ_TREND)
        {
         datetime t1=ObjectGet(name,OBJPROP_TIME1);
         datetime t2=ObjectGet(name,OBJPROP_TIME2);
         double p1=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE1),Digits);
         double p2=NormalizeDouble(ObjectGet(name,OBJPROP_PRICE2),Digits);
         Comment(p1,"   ",p2);
        }
     }
  }
//+------------------------------------------------------------------+

Bitte helfen Sie mir, ein weiteres Segment zu erstellen, das horizontal zur Mitte des ersten Segments verläuft. Ich werde die Länge des ersten Segments ändern, so dass sich auch die Position des zweiten Segments ändern sollte. Zeichnung von PRICE2 10 Kerzen voraus.

Dateien:
EURUSDM12.png  25 kb
 
Forallf:

Ich habe ein Beispiel gefunden. Ich habe es so gemacht.

Bitte helfen Sie mir, ein weiteres Segment zu erstellen, das horizontal zur Mitte des ersten Segments verläuft. Ich werde die Länge des ersten Segments ändern, so dass sich auch die Position des zweiten Segments ändern sollte. Zeichnung von PRICE2 10 Kerzen voraus.

wie diese.


369
369
  • 2021.01.07
  • www.youtube.com
лин
 
Iurii Tokman:

Bitte sehr -


Also.
 
Forallf:
Richtig.

dieses Fahrrad ist ein Standardmerkmal des Terminals
, genannt Fibonacci-Linien

 
Iurii Tokman:

dieses Fahrrad ist ein Standardmerkmal des Terminals
, genannt Fibonacci-Linien

Das mittlere ist für mich ein Beispiel. Es wird eine andere, berechnete Ebene geben.
 
Forallf:
Die Mitte ist für mich ein Beispiel. Es wird eine weitere, berechnete Ebene geben.

Sie können jeden Punkt auf einer Linie finden, wenn Sie die Koordinaten kennen. In Ihrem Fall kennen wir die Anfangs- und Endpreise sowie die Daten des Segments. Wir können auch den Preis der Mitte = (Startpreis + Endpreis)/2 ermitteln. Oder jede andere Formel, die Sie verwenden.

Nun können wir die erste Funktion verwenden, um die Zeit eines Punktes auf einem Segment zu bestimmen.

//находит дату точки (координату X) на прямой, на заданную цену (координата Y)
datetime GetPointTimeOnStraight(datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, double ePrice3, string eSymbol, int eTimeFrame)
   {
   if(ePrice2-ePrice1==0) return(0.0);
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime1)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime2)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime2);
   int eIndex3=eIndex1+(int)((eIndex2-eIndex1)*(ePrice3-ePrice1)/(ePrice2-ePrice1));
   return(iTime(eSymbol,eTimeFrame,eIndex3));
   }

//находит цену точки (координату Y) на прямой, на заданное время (координата X)
double GetPointPriceOnStraight(datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, datetime eTime3, string eSymbol, int eTimeFrame)
   {
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime1)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime2)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime2);
   if(eIndex2-eIndex1==0) return(0.0);
   int eIndex3=(eTime3>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime3)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime3);
   return(ePrice1+(ePrice2-ePrice1)*(eIndex3-eIndex1)/(eIndex2-eIndex1));
   }
 
Aleksei Stepanenko:

Nun, wenn Sie nichts verstehen, muss ich Ihnen einen Hinweis geben:

Ich glaube, ich habe es verstanden, danke!!!

Grund der Beschwerde: