어드바이저를 무작위로 모으는 방법 - 페이지 33

[삭제]  

#속성 버전 "1.07"

버튼 색상 변경

알파리 MT5

버튼을 사용하지 않습니다 - 마치 정보 패널처럼

파일:
[삭제]  
Aleksandr Klapatyuk :

#속성 버전 "1.07"

버튼 색상 변경

버튼을 사용하지 않습니다 - 마치 정보 패널처럼

그리고 다른 색상

알파리 MT5.png

파일:
[삭제]  

이 코드의 작성자가 누구인지 말해 주세요. ( 또는 원래 링크에서 다른 코드를 다운로드했습니다. - Speed-v1.mq5   48kb)

그리고 거기에

 //+------------------------------------------------------------------+
//| 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"

그는?

SEM

내가 이해하는 것처럼 - 포지션이 플러스에 들어갈 때 - 버튼을 누르면 더 많은 포지션이 그 방향으로 열릴 것입니다

EURUSDH2USDCHFH2.png

아니요, 수평선이 셀을 트리거하면 버튼이 버튼을 트리거하지만 셀 버튼은 작동하지 않는 것으로 나타났습니다. 아마도 버튼을 반대로 해야 할 것입니다.

당신은 최선을 실험해야합니다. 그러나 그 반대는 아마 아프지 않을 것입니다.

[삭제]  

#속성 버전 "1.08"

역방향 버튼 추가

그리고 설정에서 위치 변경

버튼 설정

 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
//---

예! 더 . 위치가 열리면 손절매가 즉시 설정되지만 비활성화하려면 후행(노란색 수평선 )이 0으로 설정됩니다.

 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)

그러나 정지 손실은 한 곳에서 발생하지 않으며 트롤 입력 에 의해 당겨질 것입니다. 짧은 InpObjTrailingStop = 27 ; // Obj: Trailing Stop(가격에서 객체까지의 거리, 핍 단위)

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

이 버튼이 어떻게 작동하는지 이해가 되지 않습니다.

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

#속성 버전 "1.09"

버튼이 하나 더 추가됨 - 모든 쌍의 모든 열린 위치를 삭제합니다.

전문가를 제거하고 차트 템플릿을 변경합니다.

알파리 MT5XXX

파일:
2.mq5  17 kb
[삭제]  

#속성 버전 "1.10"

추가, 숨김 버튼.

여기에서 까다로웠습니다. 데모에서는 작동하지만 실제로는 2019.11.05 15:51:33.103 AVGiS Intelligence(GBPUSD,H1) 배열이 'AVGiS Intelligence.mq5'(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);
     }
   //+------------------------------------------------------------------+
[삭제]  

여기 일하는 전문가가 있습니다

파일:
[삭제]  

이전 Expert에 수평선 에 대한 두 가지 방법이 추가되었습니다.

가능성 1: 라인 1은 주어진 거리에서 라인 4를 열고, 라인 2 주어진 거리에서 라인 3을 엽니다 .

 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:

가능성 2: 라인 7은 주어진 거리에서 라인 10을 열고 가격을 따르고 가격이 에 닿으면 명령이 트리거됩니다. 라인 8은 주어진 거리에서 라인 9를 열 것입니다. - 7 및 10과 동일한 작업

 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. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
파일:
[삭제]  
Aleksandr Klapatyuk :

이전 Expert에 수평선 에 대한 두 가지 방법이 추가되었습니다.

가능성 1: 라인 1은 주어진 거리에서 라인 4를 열고, 라인 2 주어진 거리에서 라인 3을 엽니다 .

가능성 2: 라인 7은 주어진 거리에서 라인 10을 열고 가격을 따르고 가격이 에 닿으면 명령이 트리거됩니다. 라인 8은 주어진 거리에서 라인 9를 열 것입니다. - 7 및 10과 동일한 작업

그것이 어떻게 작동하는지 시도

EURJPYM301.png

EURJPYM302

EURJPYM303

설정에서 가능했으며 해당 라인에서 변경 - 판매가 열릴 것입니다.

파일:
[삭제]  
Aleksandr Klapatyuk :

이전 Expert에 수평선 에 대한 두 가지 방법이 추가되었습니다.

가능성 1: 라인 1은 주어진 거리에서 라인 4를 열 것이고, 라인 2 주어진 거리에서 라인 3을 열 것 입니다.

가능성 2: 라인 7은 주어진 거리에서 라인 10을 열고 가격을 따르고 가격이 에 닿으면 명령이 트리거됩니다. 라인 8은 주어진 거리에서 라인 9를 열 것입니다. - 7 및 10과 동일한 작업

첫 번째 기회 4와 3에서 라인은 주어진 거리에서 무한대로 열릴 것입니다.

파일: