MOEX.Einsteigerfragen - Seite 15

 
prostotrader:

und was sollte ich dagegen tun?

 
Вадим Мотеюнас:

und was soll ich dagegen tun?

Was machen Sie, handeln Sie mit Ihren Händen?

 
prostotrader:

Tauscht ihr etwa die Hände?

Ja

 
Вадим Мотеюнас:

ja

Skizzieren Sie diesen EA in einem Handelsdiagramm (siehe Dateien)

//+------------------------------------------------------------------+
//|                                                    Pos_price.mq5 |
//|                                      Copyright 2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
double pos_price;
//+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice(const string aSymbol)
  {
   double price_in=0;
   double volume_in=0;
   if(PositionSelect(aSymbol))
     {
      ulong pos_id=ulong(PositionGetInteger(POSITION_IDENTIFIER));
      if(pos_id>0)
        {
         if(HistorySelectByPosition(pos_id))
           {
            int deals = HistoryDealsTotal();
            for(int i = 0; i < deals; i++)
              {
               ulong deal_ticket=HistoryDealGetTicket(i);
               ulong order_ticket=ulong(HistoryDealGetInteger(deal_ticket,DEAL_ORDER));
               if(order_ticket>0)
                 {
                  ENUM_DEAL_ENTRY deal_entry=ENUM_DEAL_ENTRY(HistoryDealGetInteger(deal_ticket,DEAL_ENTRY));
                  if(deal_entry==DEAL_ENTRY_IN)
                    {
                     double price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
                     double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
                     price_in+=price*volume;
                     volume_in+=volume;
                    }
                 }
              }
            if(volume_in>0)
              {
               int digits=int(SymbolInfoInteger(aSymbol,SYMBOL_DIGITS));
               return(NormalizeDouble(price_in/volume_in, digits));
              }
           }
         else
           {
            Print(__FUNCTION__,": Невозможно получить историю позиции по символу ",aSymbol);
           }
        }
      else
        {
         Print(__FUNCTION__,": Невозможно определить идентификатор позиции по символу ",aSymbol);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   pos_price=GetPositionPrice(Symbol());
   ObjectCreate(ChartID(),"Pos_price_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_XDISTANCE,5);
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_YDISTANCE,15);
//---
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_COLOR,clrWhite);
   ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: "+DoubleToString(pos_price));
   ChartRedraw(ChartID());
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(ChartID(),"Pos_price_1_1");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   pos_price=GetPositionPrice(Symbol());
   ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: "+DoubleToString(pos_price));
   ChartRedraw(ChartID());
  }
//+------------------------------------------------------------------+

Hinzugefügt

Aktualisiert den EA (zeigt den Positionspreis sofort an)

 
prostotrader:

Skizzieren Sie diesen EA auf dem Handelschart (siehe Dateien)

Hinzugefügt

Obnoyil EA (zeigt den Preis der Position sofort an)

Ich glaube, ich habe Sie missverstanden oder vielleicht habe ich Sie missverstanden, ich wollte die Aussage in mt5 mit der Überwachung auf *** übereinstimmen

 
Вадим Мотеюнас:

Sie müssen mich missverstanden haben, oder ich muss Sie missverstanden haben, ich wollte, dass die Aussage in mt5 mit der Überwachung auf *** übereinstimmt.

Und ich dachte, Sie wollten den wahren Preis der Position, nicht eine Anpassung von etwas an etwas...

Hinzugefügt

Weder MT5 noch*** berechnet den Positionspreis NICHT korrekt, da das Clearing in MT5 berücksichtigt wird, und*** keine Ahnung hat, was es zählt.

 
prostotrader:

Und ich dachte, Sie wollten den wahren Preis der Position, nicht eine Anpassung von etwas an etwas...

Hinzugefügt

Ich weiß nicht, wie der Preis einer Position korrekt berechnet wird, weil MT5 das Clearing in MT5 berücksichtigt und ich weiß nicht, wie es in *** berechnet wird.

Ich weiß nicht, ob es irgendeinen guten kostenlosen Statistikservice für mt5 und forts gibt?

 
Вадим Мотеюнас:

Gibt es irgendwelche guten kostenlosen Statistikdienste für mt5 und forts?

Was kann man an "kostenlos von mir" nicht mögen?

Zählt ab sofort die tatsächlichen Gewinne

//+------------------------------------------------------------------+
//|                                                    Pos_price.mq5 |
//|                                      Copyright 2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
double pos_price, profit;
ENUM_POSITION_TYPE pos_type;
//+------------------------------------------------------------------+
//| Expert Get position price function                               |
//+------------------------------------------------------------------+
double GetPositionPrice(const string aSymbol)
  {
   double price_in=0;
   double volume_in=0;
   if(PositionSelect(aSymbol))
     {
      ulong pos_id=ulong(PositionGetInteger(POSITION_IDENTIFIER));
      if(pos_id>0)
        {
         if(HistorySelectByPosition(pos_id))
           {
            int deals = HistoryDealsTotal();
            for(int i = 0; i < deals; i++)
              {
               ulong deal_ticket=HistoryDealGetTicket(i);
               ulong order_ticket=ulong(HistoryDealGetInteger(deal_ticket,DEAL_ORDER));
               if(order_ticket>0)
                 {
                  ENUM_DEAL_ENTRY deal_entry=ENUM_DEAL_ENTRY(HistoryDealGetInteger(deal_ticket,DEAL_ENTRY));
                  if(deal_entry==DEAL_ENTRY_IN)
                    {
                     double price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
                     double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
                     price_in+=price*volume;
                     volume_in+=volume;
                    }
                 }
              }
            if(volume_in>0)
              {
               int digits=int(SymbolInfoInteger(aSymbol,SYMBOL_DIGITS));
               return(NormalizeDouble(price_in/volume_in, digits));
              }
           }
         else
           {
            Print(__FUNCTION__,": Невозможно получить историю позиции по символу ",aSymbol);
           }
        }
      else
        {
         Print(__FUNCTION__,": Невозможно определить идентификатор позиции по символу ",aSymbol);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ObjectCreate(ChartID(),"Pos_price_1",OBJ_LABEL,0,0,0);
   ObjectCreate(ChartID(),"Pos_price_2",OBJ_LABEL,0,0,0);
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_XDISTANCE,5);
   ObjectSetInteger(ChartID(),"Pos_price_2",OBJPROP_XDISTANCE,5);
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_YDISTANCE,15);
   ObjectSetInteger(ChartID(),"Pos_price_2",OBJPROP_YDISTANCE,30);
//---
   ObjectSetInteger(ChartID(),"Pos_price_1",OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(ChartID(),"Pos_price_2",OBJPROP_COLOR,clrWhite);
   if(PositionSelect(Symbol()))
   {
     pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
     pos_price=GetPositionPrice(Symbol());
     switch(pos_type)
     {
       case POSITION_TYPE_SELL:
         profit = pos_price - SymbolInfoDouble(Symbol(), SYMBOL_LAST);
       break;
       case POSITION_TYPE_BUY:
       profit = SymbolInfoDouble(Symbol(), SYMBOL_LAST) - pos_price;
       break;
     }
     ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: " + DoubleToString(pos_price));
     ObjectSetString(ChartID(),"Pos_price_2",OBJPROP_TEXT,"Текущий профит: " + DoubleToString(profit));
   }
   else
   {
     ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: 0");
     ObjectSetString(ChartID(),"Pos_price_2",OBJPROP_TEXT,"Текущий профит: 0");
   }  
   ChartRedraw(ChartID());
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(ChartID(),"Pos_price_1");
   ObjectDelete(ChartID(),"Pos_price_2");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(PositionSelect(Symbol()))
   {
     pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE));
     pos_price=GetPositionPrice(Symbol());
     switch(pos_type)
     {
       case POSITION_TYPE_SELL:
         profit = pos_price - SymbolInfoDouble(Symbol(), SYMBOL_LAST);
       break;
       case POSITION_TYPE_BUY:
       profit = SymbolInfoDouble(Symbol(), SYMBOL_LAST) - pos_price;
       break;
     }
     ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: " + DoubleToString(pos_price));
     ObjectSetString(ChartID(),"Pos_price_2",OBJPROP_TEXT,"Текущий профит: " + DoubleToString(profit));
   }
   else
   {
     ObjectSetString(ChartID(),"Pos_price_1",OBJPROP_TEXT,"Цена позиции: 0");
     ObjectSetString(ChartID(),"Pos_price_2",OBJPROP_TEXT,"Текущий профит: 0");
   }
   ChartRedraw(ChartID());
  }
//+------------------------------------------------------------------+
 
prostotrader:

Was gibt es an meiner Trittbrettfahrerei nicht zu mögen?

Ich brauche so etwas wie ein Protokoll der Transaktionen mit Auto-Erneuerung der Geschichte der Transaktionen, um die Statistiken meines Handels zu analysieren, auf Forex *** durch mt4 funktioniert und zählt alles richtig (zumindest der Zustand von mt4 deckt sich mit den Zahlen ***). verbunden das Konto von forts Zahlen anders ... so fragte ich. Ich dachte, dass vielleicht in mt5 brauchen etwas zu hacken

Пользовательский интерфейс - Начало работы - MetaTrader 5
Пользовательский интерфейс - Начало работы - MetaTrader 5
  • www.metatrader5.com
Интерфейс платформы предоставляет доступ ко всем инструментам, необходимым для торговли на финансовых рынках. Он включает в себя различные меню, панели инструментов и служебные окна. Главное меню В главном меню собраны практически все команды и функции, которые можно выполнять в торговой платформе. Оно позволяет работать с графиками...
 
Вадим Мотеюнас:

Ich brauche irgendeine Art von Handelslog mit automatischer Aktualisierung der Handelsgeschichte, um meine Handelsstatistiken zu analysieren, auf Forex ***mt4 funktioniert und zählt richtig (zumindest die Statistik von mt4 stimmt mit den Zahlen ***), ich verbunden ein Konto von Forts Zahlen sind anders ... so dachte ich, dass vielleicht in mt5 Sie brauchen etwas zu hacken

"Hack" macht keinen Sinn, man braucht nur

Ich dachte, vielleicht müssen Sie etwas bei mt5 hacken.

Schreiben Sie Ihre Aufgabenstellung und fragen Sie hier

https://www.mql5.com/ru/job

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
1. мы задаём период(например неделя вперёд или сутки), которые сразу же разрисовываются полосками временных периодов по нашему желанию от м5 и до W1(с стандартным выбором цветов, толщин линий, пунктиров и т.п.) как в любом индикаторе. Добавление этих полос по выбору- можем хоть 2 , хоть все добавить. И присвоить им цвет, тип , толщину и т.п. А...