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

 
Das Archiv enthält zwei Indikatoren und Expert Advisor Ich arbeite an (test-cifr), Indikatoren arbeiten von selbst, aber ich kann nicht fügen Sie sie in Expert Advisor (der einzige Zweck der Expert Advisor ist die Ausgabe von Werten), bitte helfen Sie mir zu verstehen, warum sie nicht sind und wie man sie einfügen.
Dateien:
 
Vielen Dank und viel Glück für Sie artmedia70
 
palomnik:
Vielen Dank und viel Glück für Sie artmedia70
Genau... Gesundheit: Sie ist eine nicht erneuerbare Ressource. Vielen Dank :)
 
ed3sss:

Hallo.

Wie kann ich auf dem Chart die Inschrift auf dem aktuellen Instrument Gewinn/Verlust der offenen Aufträge anzeigen.

Es ist schwierig, im Expert Advisor zu überprüfen, ob er Positionen eröffnet hat oder nicht (Terminal an/aus) und das letzte Lotvolumen vor dem Schließen des Terminals zu erfassen.

Ich danke Ihnen.


Hallo, niemand, der Bescheid weiß?
 

Wenn ich in der Vergangenheit Geschäfte getätigt habe, verwende ich die Funktion orderprofit und addiere dann die gesamte Historie der Geschäfte.

Ich frage mich, ob jemand eine Antwort auf meine Frage hat.

 
artmedia70:

Dieser Kodex weist einen Fehler auf. Hier, aus dem Zusammenhang gerissen:


Der springende Punkt ist, dass der Ausdruck

Daher wird der Wert der Partie auf eine Dezimalstelle gerundet.


Lesen Sie weiter, vielleicht hilft das.



Das hoffe ich sehr. Ich danke Ihnen. Ich werde den obigen Thread durchlesen, um diesen Punkt zu bekräftigen. Wir wollen keine Lücken hinterlassen.
 
ed3sss:

Hallo, gibt es jemanden, der sich auskennt?


Nun, so wie ich es verstehe, ist alles elementar. Alles, was Sie brauchen, ist Grundwissen.

1. Sie führen eine Überschreitung der Aufträge durch.

2. Prüfen Sie, ob der Auftrag offen ist, d.h. ob die Auftragsschlusszeit relativ zu Null ist.

3. wenn der Auftrag offen ist, zeigen Sie die benötigten Daten, den Gewinn, den Typ, usw. an.

 
palomnik:

Wenn ich in der Vergangenheit Geschäfte getätigt habe, verwende ich die Funktion orderprofit und addiere dann den gesamten Verlauf der Geschäfte.

Ich frage mich, ob jemand Antworten auf meine Frage hat.

Kopieren Sie den gesamten Code in Ihren Expert Advisor

wie diese

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


extern int    TimeFrame=0;//Если=0, то текуший
extern string FrApNam="Ap";//Имя линии соотв.Фракталу вверх
extern string FrDnNam="Dn";//Имя линии соотв.Фракталу вниз
extern color  ClAp=Blue;//Цвет линии соотв.Фракталу вверх
extern color  ClDn=Red;//Цвет линии соотв.Фракталу вниз
//-----------------------------------------------------------------------------+
double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  if(TimeFrame==0){TimeFrame=Period();}
  IndicatorShortName("Factal_Level_Xrust"+TimeFrame);
  FrApNam=StringConcatenate(FrApNam,TimeFrame);
  FrDnNam=StringConcatenate(FrDnNam,TimeFrame); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  ObjectDelete(FrDnNam);
  ObjectDelete(FrApNam);
  Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   LineAp();
   LineDn();
   
   int diap=MathRound((FrApPrise-FrDnPrise)/Point);
   
   Comment("\n"," LineDn  = ",FrDnPrise,
           "\n", " LineAp  = ",FrApPrise,
           "\n"," diap  = ",diap );

//----
   return(0);
  }
//+------------------------------------------------------------------+
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      |   
//-----------------------------------------------------------------------------+
   void  LineDn(){
   FrDnPrise=0;
   double  FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   //Comment(FrPrise);
   if(ObjectFind(FrDnNam)==0){
     if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrDnPrise=FrPrise;  
   ObjectDelete(FrDnNam);
   SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
   WindowRedraw();
   return;} 
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      | 
//-----------------------------------------------------------------------------+
   void  LineAp(){
   FrApPrise=0;
   double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   if(ObjectFind(FrApNam)==0){
     if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrApPrise=FrPrise; 
   ObjectDelete(FrApNam); 
   SetHLine(ClAp,FrApNam,FrApPrise,0,1);
   WindowRedraw();
   return;}
//-----------------------------------------------------------------------------+   
//   Киму Респект и уважуха !!!                                                |       
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень.         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy   - наименование инструмента      ("" или NULL - текущий символ)     |
//|    tf   - таймфрейм                     (    0       - текущий ТФ)         |
//|    mode - тип фрактала                  (MODE_LOWER|MODE_UPPER)            |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
  if (sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    d=MarketInfo(sy, MODE_DIGITS), s;
  if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;

  for (s=2; s<100; s++) {
    f=iFractals(sy, tf, mode, s);
    if (f!=0) return(NormalizeDouble(f, d));
  }
  Print("FindNearFractal(): Фрактал не найден");
  return(0);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

oder

oder Funktionen verwenden

int ObjectFind( string name) //Поиск объекта с указанным именем

double ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта

um nach einem Objekt zu suchen. Es gibt keinen anderen Weg.
 
Nein, es ist zwar eingefügt, aber der Wert ist absolut unschlagbar.
 
palomnik:
Nein, es funktioniert, aber der Wert kommt von der Decke


Versuchen Sie, die Indikatoreinstellungen im EA-Code zu entfernen. Die Einstellungen werden dann aus dem im Indikator vorgegebenen Code übernommen.

Ich habe auch linke Werte, ich habe die Einstellungen aus dem Code entfernt und es ist OK.