0

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int SelectOrder(int type,int num)
 
{
   
int count=0;
   
int o_ticket;
   datetime op_time
=TimeCurrent();
   
   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==type)
             
{
               
if(op_time>OrderOpenTime())
                 
{
                  op_time
=OrderOpenTime();
                  o_ticket
=OrderTicket();
                  count
++;
                 
if(count==num)
                   
break;
                 
}
             
}
           
}
       
}
     
}
   
return(o_ticket);
 
}

SelectOrder(0,3) — ищем ордер на покупку, третий с конца
На входе в функцию: тип ордера и номер ордера
На выходе: тиккет искомого ордера.

Так же можно перебирать ордера по номеру тиккета и искать любые данные: лот, цена открытия/закрытия, профит, стоп-лосс, тейк и т.д.
avatar

verta81

  • 30 мая 2024, 19:36
0
Как вариант, можно перебирать в цикле все ордера и сравнивать время открытия ордеров. Выход из цикла при нахождении нужного ордера.
avatar

verta81

  • 29 мая 2024, 23:39
+1

//+------------------------------------------------------------------+
//|                                                    bezubitok.mq4 |
//|                                               Copyright 2024, Ve |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, Ve"
#property version   "1.00"
#property strict

extern int BU        = 30;       // Уровень безубытка в пунктах
extern int Slip      = 30;       // Slippage
extern int Magic     = 0;        // Magic
int count_trades;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
//---
   
//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{
//---
   
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type=-1)
 
{
   
int count=0;
   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==type || (OrderType()<2 && type==-1))
               count
++;
           
}
       
}
     
}
   
return(count);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModifyBu()
 
{
   
double sl;
   
bool mod;
   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==0)
               
{
                sl
=OrderOpenPrice()+BU*_Point;
                mod
=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrYellow);
               
}
           
if(OrderType()==1)
               
{
                sl
=OrderOpenPrice()-BU*_Point;
                mod
=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrYellow);
               
}
           
}
       
}
     
}
 
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
 
{
   
if(count_trades!=CountTrades())
     
{
     
if(count_trades>CountTrades())
       
ModifyBu();
      count_trades
=CountTrades();
     
}
 
}
//+------------------------------------------------------------------+

avatar

verta81

  • 26 мая 2024, 00:05
0
Терпение.
Может у Андрея большая загрузка.
Ответят Вам обязательно.
avatar

verta81

  • 25 мая 2024, 23:49
0
буду поручителем.
avatar

verta81

  • 9 мая 2024, 21:17
0

//+------------------------------------------------------------------+
//|                                                   CloseChart.mq4 |
//|                                              Copyright 2024, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

extern int StartHour     = 22;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
//---

//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{

 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
 
{
//--- время начала сессии
   
int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   
int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur
=aTimeCur%86400;
   
if(StopTime<StartTime)
     
{
     
//--- переход через полночь
     
if(aTimeCur>=StartTime || aTimeCur<StopTime)
       
{
         
return(true);
       
}
     
}
   
else
     
{
     
//--- внутри одного дня
     
if(aTimeCur>=StartTime && aTimeCur<StopTime)
       
{
         
return(true);
       
}
     
}
   
return(false);
 
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
 
{
   
//long  ChartID();
   
if(TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()))
     
{
     
long currChart,prevChart=ChartFirst();

     
int i=0,limit=100;
     
Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);

     
while(i<limit)// у нас наверняка не больше 100 открытых графиков
       
{
         currChart
=ChartNext(prevChart); // на основании предыдущего получим новый график
         
if(currChart<0)
           
break;          // достигли конца списка графиков
         
Print(i,ChartSymbol(currChart)," ID =",currChart);
         
if(currChart!=ChartID())
           
{
           
if(ChartSymbol(currChart)==_Symbol)
               
ChartClose(currChart);
           
}

         prevChart
=currChart;// запомним идентификатор текущего графика для ChartNext()
         i
++;// не забудем увеличить счетчик
       
}

     
for(int k=OrdersTotal()-1; k>=0; k--)
       
{
         
if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES))
           
{
           
bool m=OrderModify(OrderTicket(),OrderOpenPrice(),0,0,0,Yellow);
           
}
       
}
     
}

   
Comment("\n Time: ",TimeCurrent());
 
}
//+------------------------------------------------------------------+

avatar

verta81

  • 21 апреля 2024, 00:05
+2

//+------------------------------------------------------------------+
//|                                                       ProBoy.mq4 |
//|                                              Copyright 2024, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double Profit     = 11;       // профит

extern int StopLoss      = 0;        // лось
extern int TakeProfit    = 0;        // язь

extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

datetime t
=0;
double high_price,low_price;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
//---
   
Comment("");
//---
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{
   
Comment("");
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,double lot)
 
{
   
int r=0;
   color clr
=Green;
   
double sl=0,tp=0;

   
if(type==1 || type==3 || type==5)
     
{
      clr
=Red;

     
if(StopLoss>0)
         sl
=NormalizeDouble(price+StopLoss*_Point,_Digits);
     
if(TakeProfit>0)
         tp
=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     
}

   
if(type==0 || type==2 || type==4)
     
{
      clr
=Blue;

     
if(StopLoss>0)
         sl
=NormalizeDouble(price-StopLoss*_Point,_Digits);
     
if(TakeProfit>0)
         tp
=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     
}

   r
=OrderSend(NULL,type,lot,NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   
return;
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
 
{
   
bool cl=0;

   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==0 && (ot==0 || ot==-1))
             
{
               
RefreshRates();
               cl
=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
             
}
           
if(OrderType()==1 && (ot==1 || ot==-1))
             
{
               
RefreshRates();
               cl
=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
             
}
           
}
       
}
     
}
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type=-1)
 
{
   
int count=0;
   
   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()==type || (OrderType()<2 && type==-1))
               count
++;
           
}
       
}
     
}
   
return(count);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FindOrderType()
 
{
   
int oticket,ticketNumber=0,type=0;
   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
            oticket
=OrderTicket();
           
if(oticket>ticketNumber)
             
{
               ticketNumber
=oticket;
               type
=OrderType();
             
}
           
}
       
}
     
}
   
return(type);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit()
 
{
   
double profit=0;

   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()<2)
               profit
+=OrderProfit()+OrderSwap()+OrderCommission();
           
}
       
}
     
}
   
return(profit);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DelOrder()
 
{
   
bool del=1;

   
for(int i=OrdersTotal()-1; i>=0; i--)
     
{
     
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
       
{
         
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           
{
           
if(OrderType()>1)
               
del=OrderDelete(OrderTicket());
           
}
       
}
     
}
   
return;
 
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
 
{
   
if(AllProfit()>Profit && Profit>0)
     
{
     
CloseAll();
     
DelOrder();
     
}
   
//------------------------------------------------
   
if(CountTrades()>0 && CountTrades(5)<1 && CountTrades(4)<1)
     
{
     
if(FindOrderType()==1)
       
PutOrder(4,high_price,Lots*2);
     
if(FindOrderType()==0)
       
PutOrder(5,low_price,Lots*2);
     
}
   
//------------------------------------------------
   
if(t!=Time[0])
     
{
     
if(CountTrades()<1 && Close[1]>Open[1] && Close[2]<Open[2] && Close[3]<Open[3])
       
{
         high_price
=Ask;
         low_price
=Low[1];
         
PutOrder(0,Ask,Lots);
         
PutOrder(5,Low[1],Lots*2);
       
}

     
if(CountTrades()<1 && Close[1]<Open[1] && Close[2]>Open[2] && Close[3]>Open[3])
       
{
         high_price
=High[1];
         low_price
=Bid;
         
PutOrder(1,Bid,Lots);
         
PutOrder(4,High[1],Lots*2);
       
}

      t
=Time[0];
     
}

   
Comment("\n Profit: ",AllProfit(),
           
"\n CountTrades: ",CountTrades());
 
}
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+

avatar

verta81

  • 15 апреля 2024, 23:23
0
Или может у Вас есть предложение, как из SSMVLR получить значение 0.9023?
avatar

verta81

  • 1 апреля 2024, 09:49
0
В JavaScript есть строковые функции для извлечения строковых символов:
charAt() — возвращает символ по указанному индексу (позиции) в строке.
charCodeAt() — возвращает Юникод символа по указанному индексу.
Соответственно эта строка функции:

charAt
(s.charCodeAt(i)-69-i))

производит извлечение и расчёт из SSMVLR получается 0.9023
Каким способом можно реализовать это в mql4?
avatar

verta81

  • 1 апреля 2024, 09:45
0
При сохранении шаблона запоминаются и права для запущенных на графике программ: право на торговлю и право на использование DLL. В целях безопасности эти права при применении шаблона к графику могут ограничиваться:

Права на торговлю и использование DLL не могут быть повышены при запуске советника путем применения шаблона с помощью функции ChartApplyTemplate().

Если у mql4-программы, которая вызывает функцию ChartApplyTemplate(), отсутствуют права на торговлю, то эксперт, загруженный при помощи шаблона, также не будет иметь прав на торговлю вне зависимости от настроек шаблона.

Если у mql4-программы, которая вызывает функцию ChartApplyTemplate(), есть права на торговлю, а в настройках шаблона права отсутствуют, то советник, загруженный при помощи шаблона, не будет иметь прав на торговлю.
avatar

verta81

  • 12 марта 2024, 17:30
0
Если Андрей не против, могу попробовать написать.
avatar

verta81

  • 12 марта 2024, 17:25
0
есть еще варианты: через WinAPI или
используя шаблоны ChartSaveTemplate, ChartApplyTemplate.
avatar

verta81

  • 12 марта 2024, 08:16
0
Стандартный индикатор Bollinger Bands.
avatar

verta81

  • 10 марта 2024, 15:30
0
Добавьте BBands и на минорах в паре с канадцем — грааль)
avatar

verta81

  • 10 марта 2024, 15:18
0
Вариант 3в1: downloads/3792

avatar

verta81

  • 25 февраля 2024, 21:21
0
Не зачастил ли с заказами, Генерал?)
avatar

verta81

  • 24 февраля 2024, 00:10
+2
Используя этот пост Андрея, накидал код. Не судите строго)

//+------------------------------------------------------------------+
//|                                                   Santiments.mq4 |
//|                                               Copyright 2023, Ve |
//|                                                verta81@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, Ve"
#property link      "verta81@yandex.ru"
#property version   "1.00"
#property strict
#property indicator_chart_window

#import "wininet.dll"
int InternetAttemptConnect(int x);
int InternetOpenW(string sAgent,int lAccessType,string sProxyName="",string sProxyBypass="",int lFlags=0);
int InternetOpenUrlW(int hInternetSession,string sUrl,string sHeaders="",int lHeadersLength=0,int lFlags=0,int lContext=0);
int InternetReadFile(int hFile,int &sBuffer[],int lNumBytesToRead,int &lNumberOfBytesRead[]);
int InternetCloseHandle(int hInet);
#import

extern string OutSymbol    = "EURUSD";  // Символ
extern int Update          = 10;        // период обновления в сек.
//-----------------------------------
string URL,TEXT;
int count;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
 
{
   
EventSetTimer(Update);
   URL
=StringConcatenate("https://www.myfxbook.com/ru/community/outlook/",OutSymbol);
   
ReadHTML();
   
MeterCreate();
   
IndIni("name1",UpdateData("Long"));
   
return(INIT_SUCCEEDED);
 
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
 
{
   
EventKillTimer();
   
ObjectsDeleteAll();
   
Comment("");
 
}
//+------------------------------------------------------------------+
//| 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[])
 
{
   
if(count!=UpdateData("Long"))
     
{
     
IndIni("name1",UpdateData("Long"));
      count
=UpdateData("Long");
     
}
   
return(rates_total);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int UpdateData(string pos)
 
{
   
int res=0;
   
int Short,Long;
   
int sh = StringFind(TEXT,"Short")+17;
   
int sh2= StringFind(TEXT,"%",sh);
   
Short=StrToInteger(StringSubstr(TEXT,sh,sh2-sh));
   
//-----------------------------------
   sh
= StringFind(TEXT,"Long")+16;
   sh2
= StringFind(TEXT,"%",sh);
   
Long=StrToInteger(StringSubstr(TEXT,sh,sh2-sh));
   
//------------------------------------
   
if(pos=="Short") res=Short;
   
if(pos=="Long") res=Long;
   
return(res);
 
}
//+------------------------------------------------------------------+
//                                                                   |
//+------------------------------------------------------------------+
void ReadHTML()
 
{
   
if(!IsDllsAllowed())
     
{
     
Alert("Необходимо в настройках разрешить использование DLL");
     
}
   
int rv = InternetAttemptConnect(0);
   
if(rv != 0)
     
{
     
Alert("Ошибка при вызове InternetAttemptConnect()");
     
}
   
int hInternetSession=InternetOpenW("Microsoft Internet Explorer",0,"","",0);
   
if(hInternetSession<=0)
     
{
     
Alert("Ошибка при вызове InternetOpenW()");
     
}
   
int hURL=InternetOpenUrlW(hInternetSession,URL,"",0,0,0);
   
if(hURL<=0)
     
{
     
Alert("Ошибка при вызове InternetOpenUrlW()");
     
InternetCloseHandle(hInternetSession);
     
}
   
int cBuffer[256];
   
int dwBytesRead[1];
   
//TEXT="";
   
while(!IsStopped())
     
{
     
bool bResult=InternetReadFile(hURL,cBuffer,1024,dwBytesRead);
     
if(dwBytesRead[0]==0)
         
break;
     
string text = "";
     
string text0= "";
     
for(int i=0; i<256; i++)
       
{
         text0
=CharToStr((char)(cBuffer[i]&0x000000FF));
         
if(text0!="\r") text=text+text0;
         
else dwBytesRead[0]--;
         
if(StringLen(text)==dwBytesRead[0]) break;

         text0
=CharToStr((char)(cBuffer[i]>>(8  &0x000000FF)));
         
if(text0!="\r") text=text+text0;
         
else dwBytesRead[0]--;
         
if(StringLen(text)==dwBytesRead[0]) break;

         text0
=CharToStr((char)(cBuffer[i]>>(16  &0x000000FF)));
         
if(text0!="\r") text=text+text0;
         
else dwBytesRead[0]--;
         
if(StringLen(text)==dwBytesRead[0]) break;

         text0
=CharToStr((char)(cBuffer[i]>>(24  &0x000000FF)));
         
if(text0!="\r") text=text+text0;
         
else dwBytesRead[0]--;
         
if(StringLen(text)==dwBytesRead[0]) break;
       
}
      TEXT
=TEXT+text;
     
Sleep(1);
     
}
   
InternetCloseHandle(hInternetSession);
 
}
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
 
{
   
ReadHTML();
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void IndIni(string name,int vol)
 
{
   
if(vol>100) vol=100;
   
for(int s=0; s<=vol; s++)
     
{
     
ObjectSet(name+string(s),OBJPROP_COLOR,clrGreen);
     
}
   
for(int s=vol; s<=100; s++)
     
{
     
ObjectSet(name+string(s),OBJPROP_COLOR,clrRed);
     
}
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void MeterCreate()
 
{
   
RectLabelCreate("bord1",50,21,104,15,clrYellowGreen);
   objectCreate
("symb",5,22,OutSymbol,8,"Arial",clrWhite);
   
for(int i=0; i<100; i++)
     
{
      objectCreate
("name1"+string(i),51+(i*1),20);
     
}
    objectCreate
("long",52,22,IntegerToString(UpdateData("Long")),8,"Arial",clrWhite);
    objectCreate
("short",140,22,IntegerToString(UpdateData("Short")),8,"Arial",clrWhite);
 
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void objectCreate(string name,int x,int y,string text="|",int size=10,
                 
string font="Arial",color colour=CLR_NONE)
 
{
   
ObjectCreate(name,OBJ_LABEL,0,0,0);
   
ObjectSet(name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
   
ObjectSet(name,OBJPROP_COLOR,colour);
   
ObjectSet(name,OBJPROP_XDISTANCE,x);
   
ObjectSet(name,OBJPROP_YDISTANCE,y);
   
ObjectSetText(name,text,size,font,colour);
 
}
//+------------------------------------------------------------------+
//| Создает прямоугольную метку                                      |
//+------------------------------------------------------------------+
void RectLabelCreate(string name,int x,int y,int width,int height,color colr)
 
{
   
   
ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,0,0,0);
   
//--- установим координаты метки
   
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размеры метки
   
ObjectSetInteger(0,name,OBJPROP_XSIZE,width);
   
ObjectSetInteger(0,name,OBJPROP_YSIZE,height);
//--- установим цвет фона
   
ObjectSetInteger(0,name,OBJPROP_BGCOLOR,CLR_NONE);
//--- установим тип границы
   
ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
//--- установим угол графика, относительно которого будут определяться координаты точки
   
ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
//--- установим цвет плоской рамки (в режиме Flat)
   
ObjectSetInteger(0,name,OBJPROP_COLOR,colr);
//--- установим стиль линии плоской рамки
   
ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину плоской границы
   
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
//--- отобразим на переднем (false) или заднем (true) плане
   
ObjectSetInteger(0,name,OBJPROP_BACK,true);
 
}

avatar

verta81

  • 21 февраля 2024, 01:40
Загрузка...