MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 59

 
Lütfen kodu yazmama yardım edin.

Açık siparişlerin sayısına bir sınır eklemeniz gerekir.
Dosyalar:
mjj.txt  21 kb
 
Vadim Podoprigora :
Lütfen kodu yazmama yardım edin.

Açık siparişlerin sayısına bir sınır eklemeniz gerekir.

ve kod nasıl çalışmalı ve sonra bir sınır koymalı?

-------------------------------------------------- --------------------

Bu arada, verilerin herhangi bir değeri için nedenini kim açıklayacak?

if ifadesi (( AccountInfoDouble (ACCOUNT_EQUITY)*1.1>=AccountInfoDouble(ACCOUNT_BALANCE)) || (AccountInfoDouble(ACCOUNT_EQUITY)*0.9>=AccountInfoDouble(ACCOUNT_BALANCE)))

true döndürür

amaç büyük dalgalanmaları kesmek

ve son olarak.

düğmeler oluşturmak için malzeme arıyorum

tüm bu kodları bir panelde birleştirmeniz gerekiyor
 
trader781 :

ve kod nasıl çalışmalı ve sonra bir sınır koymalı?

-------------------------------------------------- --------------------

Bu arada, verilerin herhangi bir değeri için nedenini kim açıklayacak?

if ifadesi ((AccountInfoDouble(ACCOUNT_EQUITY)*1.1>=AccountInfoDouble(ACCOUNT_BALANCE)) || (AccountInfoDouble(ACCOUNT_EQUITY)*0.9>=AccountInfoDouble(ACCOUNT_BALANCE)))

true döndürür

amaç büyük dalgalanmaları kesmek

ve son olarak.

düğmeler oluşturmak için malzeme arıyorum

tüm bu kodları bir panelde birleştirmek gerekiyor
Makale bölümü bu tür materyallerle dolu. En basit örnekler, her bir grafik nesne türü için yardımdadır https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_button
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BUTTON
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BUTTON
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BUTTON - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
trader781 :

ve kod nasıl çalışmalı ve sonra bir sınır koymalı?

-------------------------------------------------- --------------------

Bu arada, verilerin herhangi bir değeri için nedenini kim açıklayacak?

if ifadesi ((AccountInfoDouble(ACCOUNT_EQUITY)*1.1>=AccountInfoDouble(ACCOUNT_BALANCE)) || (AccountInfoDouble(ACCOUNT_EQUITY)*0.9>=AccountInfoDouble(ACCOUNT_BALANCE)))

true döndürür

amaç büyük dalgalanmaları kesmek

ve son olarak.

düğmeler oluşturmak için malzeme arıyorum

tüm bu kodları bir panelde birleştirmeniz gerekiyor
Eşzamanlı olarak açık siparişlerin sayısını sınırlayın.
 
Vadim Podoprigora :
Eşzamanlı olarak açık siparişlerin sayısını sınırlayın.
Tutmak
Dosyalar:
55677.mq4  42 kb
 
Herkese merhaba, bana şu şekilde işlem yapan bir Uzman Danışman yazma görevi verildi:
Kullanıcı tarafından belirtilen süre için (örneğin 00-00 ile 02-00 arası) minimum ve maksimum fiyatları biz belirliyoruz. Satın al: mumda, fiyat düşük seviyenin ötesine geçti, sat: fiyat yüksek seviyenin ötesine geçti. Açık bir pozisyon ile yeni anlaşmalar açmıyoruz. Pozisyonu belirtilen zamanda (kullanıcı tarafından da belirlenir, 22-00'de diyelim) veya SL\TP (kullanıcı tarafından belirlenir) ile kapatıyoruz.


Soru şu ki, bir süre için bu minimum ve maksimum nasıl belirlenir? Ayrıca danışman, kullanıcı tarafından belirlenen (minimum ve maksimum değerlerin arandığı) sürenin bitiminden önce işlem başlatamaz. Ve sipariş sayısı nasıl izlenir (birden fazla olmaması için)?

Nereye kazacağınızı ve nereye bakacağınızı size kim söyleyecek, şimdiden teşekkürler. Birisi kod konusunda yardımcı olabilir, bu harika olurdu.
 
Anarchist :
Herkese merhaba, bana şu şekilde işlem yapan bir Uzman Danışman yazma görevi verildi:
Kullanıcı tarafından belirtilen süre için (örneğin 00-00 ile 02-00 arası) minimum ve maksimum fiyatları biz belirliyoruz. Alış: mumda, fiyat en düşük seviyenin üzerine çıktı, Satış: fiyat en yüksek seviyenin üzerine çıktı. Açık bir pozisyon ile yeni anlaşmalar açmıyoruz. Pozisyonu belirtilen zamanda (kullanıcı tarafından da belirlenir, 22-00'de diyelim) veya SL\TP (kullanıcı tarafından belirlenir) ile kapatıyoruz.


Soru şu ki, bir süre için bu minimum ve maksimum nasıl belirlenir? Ayrıca danışman, kullanıcı tarafından belirlenen (minimum ve maksimum değerlerin arandığı) sürenin bitiminden önce ticarete başlayamaz. Ve sipariş sayısı nasıl izlenir (birden fazla olmaması için)?

Nereye kazacağınızı ve nereye bakacağınızı size kim söyleyecek, şimdiden teşekkürler. Birisi kod konusunda yardımcı olabilir, bu harika olurdu.
Bu bir dönem ödevi mi?
 
Alexey Viktorov :
Bu bir dönem ödevi mi?
Bu basit bir laboratuvar çalışmasıdır, burada tüm bunlar (kullanıcı tarafından belirlenir) programın başındaki kodda değişken olarak belirtilmiştir + kullanıcının aptal olmadığını varsayıyoruz.
 
Anarchist :
Herkese merhaba, bana şu şekilde işlem yapan bir Uzman Danışman yazma görevi verildi:
Kullanıcı tarafından belirtilen süre için (örneğin 00-00 ile 02-00 arası) minimum ve maksimum fiyatları biz belirliyoruz. Satın al: mumda, fiyat düşük seviyenin ötesine geçti, sat: fiyat yüksek seviyenin ötesine geçti. Açık bir pozisyon ile yeni anlaşmalar açmıyoruz. Pozisyonu belirtilen zamanda (kullanıcı tarafından da belirlenir, 22-00'de diyelim) veya SL\TP (kullanıcı tarafından belirlenir) ile kapatıyoruz.


Soru şu ki, bir süre için bu minimum ve maksimum nasıl belirlenir? Ayrıca danışman, kullanıcı tarafından belirlenen (minimum ve maksimum değerlerin arandığı) sürenin bitiminden önce işlem başlatamaz. Ve sipariş sayısı nasıl izlenir (birden fazla olmaması için)?

Nereye kazacağınızı ve nereye bakacağınızı size kim söyleyecek, şimdiden teşekkürler. Kod konusunda yardımcı olabilecek biri varsa çok makbule geçer.

Herhangi bir özel kontrol olmadan hızlı bir şekilde taslak halinde tutun, test cihazı için yapacaktır.

//+------------------------------------------------------------------+
//|                                                       test07.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link        "https://www.mql5.com/ru/users/sergey1294"
#property version    "1.00"
#property strict

input string analysis_time_start= "10:00" ;
input string analysis_time_end= "12:00" ;
input string time_out= "16:00" ;
input string time_out_close= "23:00" ;

input int     shift_open= 0 ;
input int     MagicNumber= 20110315 ;       // Номер копии
input double Lot= 0.01 ;           // Объем лота
input int     StopLoss     = 300 ;             // Стоп Лосс (Пипс)
input int     TakeProfit   = 500 ;             // Тейк Профит (Пипс)
input int     Slippage     = 10 ;             // Проскальзование (Пипс)
input string CommentOrder= "test" ;     // Комментарий к ордеру

double    up_price= 0.0 ;
double down_price= 0.0 ;
double hist_high[];
double hist_low[];
double hist_close[];
MqlDateTime times;
MqlRates rates[];
datetime d1;
datetime d2;
datetime d3;
datetime d4;
bool flag_open= false ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   VLineCreate( 0 , "Line_start" );
   VLineCreate( 0 , "Line_end" );
   VLineCreate( 0 , "Line_time_out" );
   VLineCreate( 0 , "Line_time_out_close" );
   HLineCreate( 0 , "Line_max" );
   HLineCreate( 0 , "Line_min" );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   VLineDelete( 0 , "Line_start" );
   VLineDelete( 0 , "Line_end" );
   VLineDelete( 0 , "Line_time_out" );
   VLineDelete( 0 , "Line_time_out_close" );
   HLineDelete( 0 , "Line_max" );
   HLineDelete( 0 , "Line_min" );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   datetime date= TimeCurrent (times);
   int ty=times.year;
   int tm=times.mon;
   int td=times.day;
   d1= StringToTime (( string )ty+ "." +( string )tm+ "." +( string )td+ " " +analysis_time_start);
   d2= StringToTime (( string )ty+ "." +( string )tm+ "." +( string )td+ " " +analysis_time_end);
   d3= StringToTime (( string )ty+ "." +( string )tm+ "." +( string )td+ " " +time_out);
   d4= StringToTime (( string )ty+ "." +( string )tm+ "." +( string )td+ " " +time_out_close);

   if (!flag_open && date>d1 && date<d2)flag_open= true ;
   if (date>=d3 && d2<d3)flag_open= false ;

   if (date>d2)
     {
       if ( CopyLow ( _Symbol , 0 ,d1,d2,hist_low)< 0 ) return ;
       if ( CopyHigh ( _Symbol , 0 ,d1,d2,hist_high)< 0 ) return ;
      up_price= NormalizeDouble (hist_high[ ArrayMaximum (hist_high)], _Digits );
      down_price= NormalizeDouble (hist_low[ ArrayMinimum (hist_low)], _Digits );
     }

   VLineMove( 0 , "Line_start" ,d1);
   VLineMove( 0 , "Line_end" ,d2);
   VLineMove( 0 , "Line_time_out" ,d3);
   VLineMove( 0 , "Line_time_out_close" ,d4);
   HLineMove( 0 , "Line_max" ,up_price);
   HLineMove( 0 , "Line_min" ,down_price);

   Comment (
           "\n date = " ,date,
           "\n d1 = " , TimeToString (d1),
           "\n d2 = " , TimeToString (d2),
           "\n d3 = " , TimeToString (d3),
           "\n d4 = " , TimeToString (d4)
           );

   if (flag_open)
     {
       if (TotalOrder()== 0 )
        {
         if ( CopyRates ( _Symbol , PERIOD_CURRENT , 0 ,shift_open+ 2 ,rates)==shift_open+ 2 )
           {
             if (date>d2 && date<d3 && d2<d3 && rates[shift_open].time>d2)
              {
               if (rates[shift_open].close>=up_price && rates[shift_open+ 1 ].close<=up_price)
                 {
                  OrderOpen( OP_BUY );
                 }

               if (rates[shift_open].close<=down_price && rates[shift_open+ 1 ].close>=down_price)
                 {
                  OrderOpen( OP_SELL );
                 }
              }
           }
        }
     }

   if (date>=d4 && d2<d4)
     {
       OrderClose ();
     }

   ModifySL(StopLoss);
   ModifyTP(TakeProfit);
  }
//+------------------------------------------------------------------+
int TotalOrder()
  {
   int value= 0 ;
   int total= OrdersTotal ();
   for ( int i=total- 1 ; i>= 0 ; i--)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderSymbol ()!= Symbol ()) continue ;
       if ( OrderMagicNumber ()!=MagicNumber) continue ;
       if ( OrderType ()> 1 ) continue ;
      value++;
     }
   return (value);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OrderOpen( int type)
  {
   double price_open= 0.0 ;
   if (type== WRONG_VALUE ) return ;
   if (! IsTradeAllowed ()) return ;

   if (type== OP_BUY )price_open = NormalizeDouble ( Ask , _Digits );
   if (type== OP_SELL )price_open = NormalizeDouble ( Bid , _Digits );

   int ticket= OrderSend ( _Symbol ,type,Lot,price_open,Slippage, 0 , 0 ,CommentOrder,MagicNumber);
   if (ticket< 0 ) Print ( "Ошибка открытия ордера № - " , GetLastError ());
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OrderClose ()
  {
   double price_close= 0.0 ;
   if (! IsTradeAllowed ()) return ;
   int total= OrdersTotal ();
   for ( int i=total- 1 ; i>= 0 ; i--)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderMagicNumber ()!=MagicNumber) continue ;
       if ( OrderSymbol ()!= _Symbol ) continue ;
       if ( OrderType ()!= OP_BUY  &&  OrderType ()!= OP_SELL ) continue ;
       if ( OrderType ()== OP_BUY )price_close= NormalizeDouble ( Bid , _Digits );
       if ( OrderType ()== OP_SELL )price_close= NormalizeDouble ( Ask , _Digits );
       bool res= OrderClose ( OrderTicket (), OrderLots (),price_close,Slippage);
       if (!res) Print ( "Ошибка закрытия ордера № - " , GetLastError ());
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ModifySL( double sl)
  {
   if (sl<= 0 ) return ;
   double price_sl= 0.0 ;
   int total= OrdersTotal ();
   for ( int i=total- 1 ; i>= 0 ; i--)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderMagicNumber ()!=MagicNumber) continue ;
       if ( OrderSymbol ()!= _Symbol ) continue ;
       if ( OrderType ()> 1 ) continue ;
       if ( OrderStopLoss ()== 0 )
        {
         if ( OrderType ()== OP_BUY )price_sl= NormalizeDouble ( OrderOpenPrice ()-sl* _Point , _Digits );
         if ( OrderType ()== OP_SELL )price_sl= NormalizeDouble ( OrderOpenPrice ()+sl* _Point , _Digits );
         if (price_sl<= 0 ) continue ;
         bool res= OrderModify ( OrderTicket (), OrderOpenPrice (),price_sl, OrderTakeProfit (), 0 );
         if (!res) Print ( "Ошибка модификации стоп лосса ордера № - " , GetLastError ());
        }
     }
  }
//+------------------------------------------------------------------+
void ModifyTP( double tp)
  {
   if (tp<= 0 ) return ;
   double price_tp= 0.0 ;
   int total= OrdersTotal ();
   for ( int i=total- 1 ; i>= 0 ; i--)
     {
       if (! OrderSelect (i, SELECT_BY_POS )) continue ;
       if ( OrderMagicNumber ()!=MagicNumber) continue ;
       if ( OrderSymbol ()!= _Symbol ) continue ;
       if ( OrderType ()> 1 ) continue ;
       if ( OrderTakeProfit ()== 0 )
        {
         if ( OrderType ()== OP_BUY )price_tp= NormalizeDouble ( OrderOpenPrice ()+tp* _Point , _Digits );
         if ( OrderType ()== OP_SELL )price_tp= NormalizeDouble ( OrderOpenPrice ()-tp* _Point , _Digits );
         if (price_tp<= 0 ) continue ;
         bool res= OrderModify ( OrderTicket (), OrderOpenPrice (), OrderStopLoss (),price_tp, 0 );
         if (!res) Print ( "Ошибка модификации тейк профита ордера № - " , GetLastError ());
        }
     }
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Создает вертикальную линию                                       |
//+------------------------------------------------------------------+
bool VLineCreate( const long             chart_ID= 0 ,         // ID графика
                 const string           name= "VLine" ,       // имя линии
                 const int              sub_window= 0 ,       // номер подокна
                 datetime               time= 0 ,             // время линии
                 const color            clr= clrRed ,         // цвет линии
                 const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии
                 const int              width= 1 ,           // толщина линии
                 const bool             back= false ,         // на заднем плане
                 const bool             selection= true ,     // выделить для перемещений
                 const bool             ray= true ,           // продолжение линии вниз
                 const bool             hidden= true ,       // скрыт в списке объектов
                 const long             z_order= 0 )         // приоритет на нажатие мышью
  {
//--- если время линии не задано, то проводим ее через последний бар
   if (!time)
      time= TimeCurrent ();
//--- сбросим значение ошибки
   ResetLastError ();
//--- создадим вертикальную линию
   if (! ObjectCreate (chart_ID,name, OBJ_VLINE ,sub_window,time, 0 ))
     {
       Print ( __FUNCTION__ ,
             ": не удалось создать вертикальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- установим цвет линии
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
//--- установим стиль отображения линии
   ObjectSetInteger (chart_ID,name, OBJPROP_STYLE ,style);
//--- установим толщину линии
   ObjectSetInteger (chart_ID,name, OBJPROP_WIDTH ,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection);
//--- включим (true) или отключим (false) режим отображения линии в подокнах графика
   ObjectSetInteger (chart_ID,name, OBJPROP_RAY ,ray);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order);
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Перемещение вертикальной линии                                   |
//+------------------------------------------------------------------+
bool VLineMove( const long    chart_ID= 0 ,   // ID графика
               const string name= "VLine" , // имя линии
               datetime      time= 0 )       // время линии
  {
//--- если время линии не задано, то перемещаем ее на последний бар
   if (!time)
      time= TimeCurrent ();
//--- сбросим значение ошибки
   ResetLastError ();
//--- переместим вертикальную линию
   if (! ObjectMove (chart_ID,name, 0 ,time, 0 ))
     {
       Print ( __FUNCTION__ ,
             ": не удалось переместить вертикальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Удаляет вертикальную линию                                       |
//+------------------------------------------------------------------+
bool VLineDelete( const long    chart_ID= 0 ,   // ID графика
                 const string name= "VLine" ) // имя линии
  {
//--- сбросим значение ошибки
   ResetLastError ();
//--- удалим вертикальную линию
   if (! ObjectDelete (chart_ID,name))
     {
       Print ( __FUNCTION__ ,
             ": не удалось удалить вертикальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Создает горизонтальную линию                                     |
//+------------------------------------------------------------------+
bool HLineCreate( const long             chart_ID= 0 ,         // ID графика
                 const string           name= "HLine" ,       // имя линии
                 const int              sub_window= 0 ,       // номер подокна
                 double                 price= 0 ,           // цена линии
                 const color            clr= clrRed ,         // цвет линии
                 const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии
                 const int              width= 1 ,           // толщина линии
                 const bool             back= false ,         // на заднем плане
                 const bool             selection= true ,     // выделить для перемещений
                 const bool             hidden= true ,       // скрыт в списке объектов
                 const long             z_order= 0 )         // приоритет на нажатие мышью
  {
//--- если цена не задана, то установим ее на уровне текущей цены Bid
   if (!price)
      price= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
//--- сбросим значение ошибки
   ResetLastError ();
//--- создадим горизонтальную линию
   if (! ObjectCreate (chart_ID,name, OBJ_HLINE ,sub_window, 0 ,price))
     {
       Print ( __FUNCTION__ ,
             ": не удалось создать горизонтальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- установим цвет линии
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
//--- установим стиль отображения линии
   ObjectSetInteger (chart_ID,name, OBJPROP_STYLE ,style);
//--- установим толщину линии
   ObjectSetInteger (chart_ID,name, OBJPROP_WIDTH ,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order);
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Перемещение горизонтальной линии                                 |
//+------------------------------------------------------------------+
bool HLineMove( const long    chart_ID= 0 ,   // ID графика
               const string name= "HLine" , // имя линии
               double        price= 0 )       // цена линии
  {
//--- если цена линии не задана, то перемещаем ее на уровень текущей цены Bid
   if (!price)
      price= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
//--- сбросим значение ошибки
   ResetLastError ();
//--- переместим горизонтальную линию
   if (! ObjectMove (chart_ID,name, 0 , 0 ,price))
     {
       Print ( __FUNCTION__ ,
             ": не удалось переместить горизонтальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Удаляет горизонтальную линию                                     |
//+------------------------------------------------------------------+
bool HLineDelete( const long    chart_ID= 0 ,   // ID графика
                 const string name= "HLine" ) // имя линии
  {
//--- сбросим значение ошибки
   ResetLastError ();
//--- удалим горизонтальную линию
   if (! ObjectDelete (chart_ID,name))
     {
       Print ( __FUNCTION__ ,
             ": не удалось удалить горизонтальную линию! Код ошибки = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }

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

...

Dosyalar:
test07.mq4  34 kb
 
düzeltilmiş siparişleri kapatmak için blokta bir söve vardı.
Neden: