Bir danışmanı rastgele nasıl bir araya getiririm? - sayfa 33

 

#özellik sürümü "1.07"

Düğmelerin rengini değiştirdi

Alpari MT5

Düğme kullanmıyorum - tıpkı bir bilgi paneli gibi

Dosyalar:
 
Aleksandr Klapatyuk :

#özellik sürümü "1.07"

Düğmelerin rengini değiştirdi

Düğme kullanmıyorum - tıpkı bir bilgi paneli gibi

ve diğer renk

Alpari MT5.png

Dosyalar:
 

söyle bana - bu kodun yazarı kim - ( veya orijinal olarak bağlantıdan başka bir kod indirdim - bana Speed-v1.mq5 verdin   48 kb)

ve sonra, orada

 //+------------------------------------------------------------------+
//| AVGiS.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"

Bu o?

SEM

anladığım kadarıyla - pozisyonlar artıya geçtiğinde - düğmeye basıldığında istikamette daha fazla pozisyon açılacak

EURUSDH2USDCHFH2.png

hayır, yatay bir çizgi bir hücreyi tetiklediğinde, düğme düğmeyi tetikler, ancak hücre düğmesi çalışmaz ----- muhtemelen düğmelerde bir ters işlem yapmanız gerekir.

En iyisini denemelisin. ama tersi muhtemelen zarar vermez.

 

#özellik sürümü "1.08"

ters düğmeler eklendi

ve ayarlarda konumu değiştirdi

düğme ayarları

 input string    t9= "------ Button: AVGiS -----" ;         // AVGiS
input bool      ObjectLineX             = false ;         // Button: Horizontal Line(true) || Buy/Sell(false)
input bool      TickRevers              = false ;         // Button: Revers
input int       TrailingStop_STOP_LEVEL = 350 ;           // Trailing Stop LEVEL
input ENUM_TIMEFRAMES _period          = PERIOD_CURRENT ; // period
input int       limit_total_symbol      = 190 ;           // limit_total_symbol
input int       limit_total             = 190 ;           // limit_total
//---

Evet! daha fazla . bir pozisyon açıldığında, hemen bir stop loss ayarlanır - ancak aynı zamanda devre dışı bırakılacak bir takiptir (bu sarı bir yatay çizgidir ), 0'ı ayarlayın

 input string    t2= "------ Obj:Trailing Line     --- " ;   // Trailing Obj:Line
input double    InpStopLoss             = 55 ;             // Obj: Stop Loss, in pips (1.00045-1.00055=1 pips) ------------------ что бы отключить, ставим 0 !!!!!!
input ushort    InpObjTrailingStop      = 27 ;             // Obj: Trailing Stop (distance from price to object, in pips)
input ushort    InpObjTrailingStep      = 9 ;             // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)

ancak stop loss tek bir yerde olmayacak, trol girişi tarafından yukarı çekilecektir. ushort InpObjTrailingStop = 27 ; // Obj: İzleyen Durdurma (fiyattan nesneye olan mesafe, pip cinsinden)

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

Bu düğmelerin nasıl çalıştığını anlamıyorum.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Dosyalar:
2.mq5  17 kb
 

#özellik sürümü "1.09"

Bir düğme daha eklendi - tüm çiftler için tüm açık pozisyonları siler.

uzmanı kaldırır ve grafik şablonunu değiştirir

Alpari MT5XXX

Dosyalar:
2.mq5  17 kb
 

#özellik sürümü "1.10"

eklendi, düğmeleri gizle.

burada zordu - demoda çalışıyor, ancak gerçekte bir hata verdi 2019.11.05 15:51:33.103 AVGiS Intelligence (GBPUSD,H1) dizisi 'AVGiS Intelligence.mq5' içinde menzil dışında (176,34)

   //+------------------------------------------------------------------+
   //| Calculate optimal lot size                                       |
   //+------------------------------------------------------------------+
   double             TradeSizeOptimized( void )
     {
       double price= 0.0 ;
       double margin= 0.0 ;
       string arr[];
       int resize = 0 , syTotal = SymbolsTotal ( true );
       for ( int i = 0 ; i < syTotal; i++)
        {
         string name = SymbolName (i, true );
         if ( SymbolInfoInteger (name, SYMBOL_VISIBLE ))
           {
            resize = ArrayResize (arr, i+ 1 );
            arr[i] = name;
           }
         //--- select lot size

         if (! SymbolInfoDouble (arr[i], SYMBOL_ASK ,price))
             return ( 0.0 );
         if (! OrderCalcMargin ( ORDER_TYPE_BUY ,arr[i], 1.0 ,price,margin))
             return ( 0.0 );
         if (margin<= 0.0 )
             return ( 0.0 );
        }
       double lot= NormalizeDouble ( AccountInfoDouble ( ACCOUNT_MARGIN_FREE )*MaximumRisk/margin, 2 );
       //--- calculate number of losses orders without a break
       if (DecreaseFactor> 0 )
        {
         //--- select history for access
         HistorySelect ( 0 , TimeCurrent ());
         //---
         int     orders= HistoryDealsTotal ();   // total history deals
         int     losses= 0 ;                     // number of losses orders without a break

         for ( int y=orders- 1 ; y>= 0 ; y--)
           {
             ulong ticket= HistoryDealGetTicket (y);
             if (ticket== 0 )
              {
               Print ( "HistoryDealGetTicket failed, no trade history" );
               break ;
              }
             for ( int i = 0 ; i < syTotal; i++)
              {
               string name = SymbolName (i, true );
               if ( SymbolInfoInteger (name, SYMBOL_VISIBLE ))
                 {
                  resize = ArrayResize (arr, i+ 1 );
                  arr[i] = name;
                 }
               //--- check symbol
               if ( HistoryDealGetString (ticket, DEAL_SYMBOL )!=arr[i])
                   continue ;
               //--- check Expert Magic number
               if ( HistoryDealGetInteger (ticket, DEAL_MAGIC )!=Magic_Number)
                   continue ;
               //--- check profit
               double profit= HistoryDealGetDouble (ticket, DEAL_PROFIT );
               if (profit> 0.0 )
                   break ;
               if (profit< 0.0 )
                  losses++;
              }
           }
         //---
         if (losses> 1 )
            lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 1 );
        }
       for ( int i = 0 ; i < syTotal; i++)
        {
         string name = SymbolName (i, true );
         if ( SymbolInfoInteger (name, SYMBOL_VISIBLE ))
           {
            resize = ArrayResize (arr, i+ 1 );
            arr[i] = name;
           }
         //--- normalize and check limits
         double stepvol= SymbolInfoDouble (arr[i], SYMBOL_VOLUME_STEP );
         lot=stepvol* NormalizeDouble (lot/stepvol, 0 );
         double minvol= SymbolInfoDouble (arr[i], SYMBOL_VOLUME_MIN );
         if (lot<minvol)
            lot=minvol;
         double maxvol= SymbolInfoDouble (arr[i], SYMBOL_VOLUME_MAX );
         if (lot>maxvol)
            lot=maxvol;
        }
       //--- return trading volume
       return (lot);
     }
   //+------------------------------------------------------------------+
Dosyalar:
 

işte çalışan bir uzman

Dosyalar:
 

Önceki Expert'e eklendi , Yatay çizgi için iki yol.

Olasılık 1: 1. satır, 4. satırı belirli bir mesafede açar, 2. satır 3. satırı belirli bir mesafede açar.

 input string    t3= "------ Obj:Name 1-2-3-4 ------" ;     // Имя Объекта
input string    InpObjUpNameZ           = "TOP 1" ;       // Obj: TOP (Name Obj) ВВЕРХУ 1
input string    InpObjDownNameZ         = "LOWER 2" ;     // Obj: LOWER (Name Obj) ВНИЗУ 2
input int       Step                    = 5 ;             // Obj: Шаг сетки, пунктов(0 = false)
input string    InpObjDownName0         = "TOP 3" ;       // Obj: TOP (Name Obj) ВВЕРХУ 3
input ENUM_TRADE_COMMAND InpTradeCommand=open_sell;     // Obj:  command:
input string    InpObjUpName0           = "LOWER 4" ;     // Obj: LOWER (Name Obj) ВНИЗУ 4
input ENUM_TRADE_COMMAND InpTradeCommand0=open_buy;     // Obj:  command:

Olasılık 2: satır 7, fiyatı takip eden belirli bir mesafede satır 10'u açacak ve fiyat dokunduğunda komut tetiklenecek. 8. satır, 9. satırı belirli bir mesafede açacaktır, - 7 ve 10 ile aynı eylemler

 input string    t5= "- 2_Obj:Trailing Line 7-8-9-10 --- " ; // Trailing Obj:Line
input string    InpObjUpNameZx          = "TOP 7" ;       // Obj: TOP (Name Obj) ВВЕРХУ 7
input string    InpObjDownNameZx        = "LOWER 8" ;     // Obj: LOWER (Name Obj) ВНИЗУ 8
input int       StepZx                  = 5 ;             // Obj: Шаг сетки, пунктов(0 = false)
input string    InpObjUpNameX           = "TOP 9" ;       // Obj: TOP (Horizontal Line) ВВЕРХУ 9
input ENUM_TRADE_COMMAND InpTradeCommandX=open_sell;     // Obj:  command:
input string    InpObjDownNameX         = "LOWER 10" ;     // Obj: LOWER (Horizontal Line) ВНИЗУ 10
input ENUM_TRADE_COMMAND InpTradeCommand0X=open_buy;     // Obj:  command:
input ushort    InpObjTrailingStopX     = 5 ;             // Obj: Trailing Stop (distance from price to object, in pips)
input ushort    InpObjTrailingStepX     = 5 ;             // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
Dosyalar:
 
Aleksandr Klapatyuk :

Önceki Expert'e eklendi , Yatay çizgi için iki yol.

Olasılık 1: 1. satır, 4. satırı belirli bir mesafede açar, 2. satır 3. satırı belirli bir mesafede açar.

Olasılık 2: satır 7, fiyatı takip eden belirli bir mesafede satır 10'u açacak ve fiyat dokunduğunda komut tetiklenecek. 8. satır, 9. satırı belirli bir mesafede açacaktır, - 7 ve 10 ile aynı eylemler

nasıl çalıştığını denedim

EURJPYM301.png

EURJPYM302

EURJPYM303

ayarlarda bu satırlardan değişiklik yapmak mümkündü - bir satış açılacaktı

Dosyalar:
 
Aleksandr Klapatyuk :

Önceki Expert'e eklendi , Yatay çizgi için iki yol.

Olasılık 1: 1. satır, 4. satırı belirli bir mesafede açar, 2. satır 3. satırı belirli bir mesafede açar.

Olasılık 2: satır 7, fiyatı takip eden belirli bir mesafede satır 10'u açacak ve fiyat dokunduğunda komut tetiklenecek. 8. satır, 9. satırı belirli bir mesafede açacaktır, - 7 ve 10 ile aynı eylemler

ilk fırsatta 4 ve 3 çizgi belirli bir mesafede sonsuza kadar açılacak

Dosyalar: