0
вот с таким вариантом синхронизации перестал удалять на других чартах линии,.
НО Работает как нужно только с одним символом. на других символах линия clrNONE
и советник линию создаёт но она не синхронизируется…
long            chart_ID = ChartID();
long            width        = NULL;
long            v_width        = NULL;
color           color_1      = NULL;
color           color_2      = NULL;
ENUM_LINE_STYLE style        = NULL;
ENUM_LINE_STYLE v_style        = NULL;

   double pr=0,p1=0,p2=0;
   datetime TM=0,t2=0;
int k=0;
   long prev=ChartFirst();

   for(int i=0; i<ObjectsTotal(0,-1,-1); i++)
     {
      if(ObjectGetInteger(0,ObjectName(0,i,-1,-1),OBJPROP_TYPE)==OBJ_HLINE)
        {
         nm=ObjectName(0,i,-1,-1);
         if(StringFind(nm,prefix)<0)continue;
         pr=ObjectGetDouble(0,ObjectName(0,i,-1,-1),OBJPROP_PRICE);
        string symbol=StringSubstr(nm,StringLen(prefix),StringFind(nm,suffix)-StringLen(prefix));         
   //   sm=Symbol();     
       color_1  =          (color)ObjectGetInteger(0,ObjectName(0,i,-1,-1),OBJPROP_COLOR);
    style    =(ENUM_LINE_STYLE)ObjectGetInteger(0,ObjectName(0,i,-1,-1),OBJPROP_STYLE);
      width    =                 ObjectGetInteger(0,ObjectName(0,i,-1,-1),OBJPROP_WIDTH); 
      
    while(k<33)
     {
      curr=ChartNext(prev);
      if(curr<0)
         break;        
      if(nm!="" && ChartSymbol(curr)==symbol )
        {      
         ObjectCreate(curr,nm,OBJ_HLINE,0,0,NormalizeDouble(pr,_Digits));
          ObjectSetInteger(curr,nm,OBJPROP_COLOR   ,color_1);
                  ObjectSetInteger(curr,nm,OBJPROP_BACK    ,true);
                  ObjectSetInteger(curr,nm,OBJPROP_STYLE   ,style);
                  ObjectSetInteger(curr,nm,OBJPROP_WIDTH   ,width);
                  ObjectSetInteger(curr,nm,OBJPROP_SELECTABLE,true);
                  ObjectSetInteger(curr,nm,OBJPROP_TIMEFRAMES,OBJ_PERIOD_H1|OBJ_PERIOD_M15|OBJ_PERIOD_M1);                      
         }
     if(ChartSymbol(curr)!=symbol) {
 ObjectSetInteger(curr,nm,OBJPROP_COLOR   ,clrNONE);} 
  if(nm=="")
        {
        ObjectsDeleteAll(curr,nm,-1,-1);
        }                
      prev=curr;
      k++;         
     }                
    }      
   }   
avatar

sergeysv7

  • 7 октября 2021, 16:37
0
Есть идея забыть мт5 с его выкрутасами.)))
Нашёл у китайцев индикатор синхронизации-
www.fxnav.net/mt4navi/synchro_chart_line/
когда сам на графике синхронизирует почти идеально, НО у газпрома и сбербанка ценовые уровни похожие и фсё перемешивается с одного на другое. Почему???
Плюс не хочет синхронизировать в паре с советником, хотя он сохраняет и показывает там где было создание линий… НО только на одном чарте… Почему??
avatar

sergeysv7

  • 7 октября 2021, 00:26
0
Возможно ли в этот сов добавить мультитаймфрейм с указанием минут, чтоб на меньших временных чартах брал сигнал с 1440 минут?
avatar

sergeysv7

  • 11 декабря 2019, 20:44
0
//+------------------------------------------------------------------+
//|                                                     DayDeals.mq4 |
//|                                              Copyright 2019, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int size=10;
input int bars=2;
input int points=111;
input color clr=Red;
input int stop=1; //1-цена 2-пункты

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string DayDeals()
  {
   string s="",s1="";
   double st=0,tk=0;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(OrderType()<2 && TimeDay(OrderOpenTime())==Day())
              {
               if(OrderType()==0) s1=" BUY ";
               if(OrderType()==1) s1=" SELL ";

               if(stop==1)
                 {
                  st=OrderStopLoss();
                  tk=OrderTakeProfit();
                 }

               if(stop==2)
                 {
                  if(OrderStopLoss()!=0) st=(int)(MathAbs(OrderOpenPrice()-OrderStopLoss())/_Point);
                  if(OrderTakeProfit()!=0) tk=(int)(MathAbs(OrderOpenPrice()-OrderTakeProfit())/_Point);
                 }

               s+="\n"+TimeToString(OrderOpenTime(),TIME_MINUTES)+s1+(string)OrderOpenPrice()+" SL: "+(string)st+" TP: "+(string)tk+" ["+(string)OrderLots()+"]"+"\n"+"-----------------------------------------------------------------------";
              }
           }
        }
     }
   return(s);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string DayDealsText()
  {
   string s="",s1="";
   double st=0,tk=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {
            if(OrderType()<2 && TimeDay(OrderOpenTime())==Day())
              {
               if(OrderType()==0) s1=" BUY ";
               if(OrderType()==1) s1=" SELL ";

               if(stop==1)
                 {
                  st=OrderStopLoss();
                  tk=OrderTakeProfit();
                 }

               if(stop==2)
                 {
                  if(OrderStopLoss()!=0) st=(int)(MathAbs(OrderOpenPrice()-OrderStopLoss())/_Point);
                  if(OrderTakeProfit()!=0) tk=(int)(MathAbs(OrderOpenPrice()-OrderTakeProfit())/_Point);
                 }

               s=TimeToString(OrderOpenTime(),TIME_MINUTES)+s1+(string)OrderOpenPrice()+" SL:"+(string)st+" TP:"+(string)tk+" "+(string)OrderLots();
               ObjectDelete(0,"txt"+(string)i);
               Text("txt"+(string)i,s,Close[0]+points*_Point*i,Time[0]+PeriodSeconds()*bars);
              }
           }
        }
     }
   return(s);
  }
//+------------------------------------------------------------------+
//| Put Text Function                                                |
//+------------------------------------------------------------------+
void Text(string name,string text,double price,datetime time)
  {
   ObjectDelete(0,name);
//--- create a "Text" object 
   ObjectCreate(0,name,OBJ_TEXT,0,time,price);
//--- set the text
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- set the font of the text
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- set the font size
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,size);
//--- set the method binding
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,0);
//--- set the color
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   DayDealsText();
   //if(OrdersTotal()<1) ObjectsDeleteAll(0,OBJ_TEXT);

   Comment("\n",DayDeals());
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

sergeysv7

  • 31 октября 2019, 01:27
0
а в mql4, тоже можно стать… миллионером?

тоже интересует ответ на этот вопрос<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
avatar

sergeysv7

  • 30 октября 2019, 01:29