Добрый день,
Ищу индикатор типа i-profit который бы выводил на чарт статистику торгов по всем парам, которые торговались, раздельно.
Индикатор нужен и для мт4 и для мт5.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2019.05.02 01:22
#define MT4_TICKET_TYPE // Обязываем OrderSend и OrderTicket возвращать значение такого же типа, как в MT4 - int. #include <KimIVToMT5.mqh> // https://c.mql5.com/3/263/KimIVToMT5.mqh #define MT4_OLD_EVENT_HANDLERS #include "ind4to5.mqh" // https://c.mql5.com/3/277/ind4to5.mqh bool ObjectSetText( const string name, const string text, const int font_size = 0, const string font_name = NULL, const color Color = clrNONE ) { return(ObjectSetString(0, name, OBJPROP_TEXT, text) && ((font_name == NULL) || ObjectSetInteger(0, name, OBJPROP_FONTSIZE, font_size)) && ((font_name == NULL) || ObjectSetString(0, name, OBJPROP_FONT, font_name)) && ((Color == clrNONE) || ObjectSetInteger(0, name, OBJPROP_COLOR, Color))); } int WindowFind( const string ) { return(ChartWindowFind()); } int Digits( void ) { return(_Digits); } string StringTrimRight2( string Str ) { StringTrimRight(Str); return(Str); } string StringTrimLeft2( string Str ) { StringTrimLeft(Str); return(Str); } string ObjectDescription( const string name ) { return(ObjectGetString(0, name, OBJPROP_TEXT)); } #define CORNER_LEFT_LOWER 2 #define CORNER_LEFT_UPPER 0 #define CORNER_RIGHT_LOWER 3 #define CORNER_RIGHT_UPPER 1 #define CORNER(A) ((A) ? ((A) + 1) % 3 + 1 : 0) bool ObjectSet2( const string name, const ENUM_OBJECT_PROPERTY_INTEGER property, const long value ) { return((property != OBJPROP_CORNER) ? ObjectSetInteger(0, name, property, value) : ObjectSetInteger(0, name, OBJPROP_CORNER, CORNER(value)) && ObjectSetInteger(0, name, OBJPROP_ANCHOR, CORNER(value) << 1)); } bool ObjectSet2( const string name, const ENUM_OBJECT_PROPERTY_DOUBLE property, const double value ) { return(ObjectSetDouble(0, name, property, value)); } #undef CORNER template <typename T> bool ObjectCreate2(const string name, const T type, const int subwindow, const datetime time1, const double price1, const datetime time2 = NULL, const double price2 = NULL) { return(ObjectCreate(0, name, (ENUM_OBJECT)type, subwindow, time1, price1, time2, price2)); }; template <typename T> bool ObjectCreate2(const long chart_id, const string name, const T type, const int subwindow, const datetime time1, const double price1, const datetime time2 = NULL, const double price2 = NULL) { return(ObjectCreate(chart_id, name, (ENUM_OBJECT)type, subwindow, time1, price1, time2, price2)); }; #define TRUE true #define FALSE false #define StringTrimRight StringTrimRight2 #define StringTrimLeft StringTrimLeft2 #define ObjectSet ObjectSet2 #define ObjectCreate ObjectCreate2 #define StringConcatenate StringConcatenate2 string StringConcatenate2( const string Str1, const int Str2 ) { return(Str1 + (string)Str2); } string StringConcatenate2( const double Str1, const string Str2, const string Str3 ) { return((string)Str1 + Str2 + Str3); } string StringConcatenate2( const string Str1, const string Str2, const string Str3 = "", const string Str4 = "", const string Str5 = "", const string Str6 = "", const string Str7 = "" ) { return(Str1 + Str2 + Str3 + Str4 + Str5 + Str6 + Str7); } string StringConcatenate2( const string Str1, const int Str2, const string Str3, const string Str4, const string Str5, const double Str6, const string Str7, const string Str8, const string Str9, const double Str10 ) { return(Str1 + (string)Str2 + Str3 + Str4 + Str5 + (string)Str6 + Str7 + Str8 + Str9 + (string)Str10); } string StringConcatenate2( const string Str1, const int Str2, const string Str3, const string Str4, const string Str5, const double Str6, const string Str7, const string Str8, const string Str9, const double Str10, const string Str11, const double Str12 ) { return(Str1 + (string)Str2 + Str3 + Str4 + Str5 + (string)Str6 + Str7 + Str8 + Str9 + (string)Str10 + Str11 + (string)Str12); } string StringConcatenate2( const string Str1, const int Str2, const string Str3, const double Str4, const string Str5, const double Str6 ) { return(Str1 + (string)Str2 + Str3 + (string)Str4 + Str5 + (string)Str6); } string StringConcatenate2( const string Str1, const double Str2, const string Str3, const string Str4 ) { return(Str1 + (string)Str2 + Str3 + Str4); } string StringConcatenate2( const string Str1, const string Str2, const int Str3 ) { return(Str1 + Str2 + (string)Str3); } #property indicator_buffers 0 #property indicator_plots 0 #define Symb SymbTmp #define NULL "" #property indicator_separate_window #include "TradeInfo.mq4" // https://github.com/icefx/tradeinfo/blob/master/TradeInfo.mq4 // #property indicator_chart_window // #include "ProfitInfo.mq4" // https://github.com/icefx/profitinfo/blob/master/ProfitInfo.mq4 // #property indicator_chart_window // #include "IceFX.DrawProfit.mq4" // https://github.com/icefx/drawprofit/blob/master/IceFX.DrawProfit.mq4
Как обычно - оригинальный MT4-код не трогался.
Три распространенных индикатора по выводу статистики торговой истории. Работают на обеих платформах.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь