초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1281

 
Vladimir Karputov :

N Bars Martingal 코드의 Min Max 에서 4가지 유형의 보류 주문을 계산하는 예

블라디미르 카르푸토프 :

N Bars Martingale 2의 Min Max 코드에서 4가지 유형의 보류 주문을 계산하는 예

블라디미르 카르푸토프 :

N Bars Martingale 2의 Min Max 코드에서 4가지 유형의 보류 주문을 계산하는 예




블라디미르, 어떤 이유로 구매 제한 주문을 계산하지 않습니다????

정수 count_buy_limits = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++;
}
}

 
Fergert Фергерт :


블라디미르, 어떤 이유로 구매 제한 주문을 계산하지 않습니다????

정수 count_buy_limits = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(o_orderInfo.OrderType()==ORDER_TYPE_BUY_LIMIT)
{
count_buy_limits++;
}
}

1. 코드를 올바르게 붙여넣기
2. 모든 코드 표시
3. 컴파일 오류가 있습니까?
4. 포지션 및 미결 주문이 있는 창의 스크린샷
 
Vladimir Karputov :
1. 코드를 올바르게 붙여넣기
2. 모든 코드 표시
3. 컴파일 오류가 있습니까?
4. 포지션 및 미결 주문이 있는 창의 스크린샷

컴파일 오류가 없습니다..

여기 코드:

 #include <Trade\Trade.mqh>
#include <Trade\OrderInfo.mqh>
#include <Trade\SymbolInfo.mqh>

CTrade      o_trade;
COrderInfo  o_orderInfo;
CSymbolInfo o_symbolInfo;

MqlTradeRequest    order_req={ 0 }, buylimit_req1={ 0 }, buylimit_req2={ 0 }, sellstop_req3={ 0 };
MqlTradeResult     order_res={ 0 }, buylimit_res1={ 0 }, buylimit_res2={ 0 }, sellstop_res3={ 0 };

//double   lot_r    = GlobalVariableGet("glot"); // Глобальная переменная
//double   lot_r    = 0.33;
double    lot_r    = NormalizeDouble ( AccountInfoDouble ( ACCOUNT_BALANCE )/ 15000 , 2 );

int       tp_r     = 125 ;

double    lot_bl1  = 2.5 ;
double    lot_bl2  = 3 ;

double    lot_v    = NormalizeDouble (lot_r + (lot_r * lot_bl1) + (lot_r * lot_bl2), 2 );

int       set_bl1  = 500 ;   
int       set_bl2  = 1000 ;
int       set_v    = 1100 ;

int       tp_bl1   = 70 ;
int       tp_bl2   = 480 ;

int OnInit ()
  {
      order_req.action           = TRADE_ACTION_DEAL ;
      order_req.symbol           = _Symbol ;
      order_req.price            = SymbolInfoDouble (order_req.symbol, SYMBOL_ASK );
      order_req.volume           = lot_r;
      order_req.tp               = order_req.price+tp_r* _Point ;
      order_req.type             = ORDER_TYPE_BUY ;
      order_req.type_filling     = ORDER_FILLING_FOK ;
      
      buylimit_req1.action       = TRADE_ACTION_PENDING ;
      buylimit_req1.symbol       = _Symbol ;
      buylimit_req1.volume       = NormalizeDouble (lot_r*lot_bl1, 2 );
      buylimit_req1.price        = SymbolInfoDouble (buylimit_req1.symbol, SYMBOL_ASK )-set_bl1* _Point ;
      buylimit_req1.tp           = order_req.price-tp_bl1* _Point ;
      buylimit_req1.type         = ORDER_TYPE_BUY_LIMIT ;
      buylimit_req1.type_filling = ORDER_FILLING_RETURN ;
      buylimit_req1.expiration   = ORDER_TIME_GTC ;
      buylimit_req1.magic        = 01 ;
      
      buylimit_req2.action       = TRADE_ACTION_PENDING ;
      buylimit_req2.symbol       = _Symbol ;
      buylimit_req2.volume       = NormalizeDouble (lot_r*lot_bl2, 2 );
      buylimit_req2.price        = SymbolInfoDouble (buylimit_req2.symbol, SYMBOL_ASK )-set_bl2* _Point ;
      buylimit_req2.tp           = order_req.price-tp_bl2* _Point ;
      buylimit_req2.type         = ORDER_TYPE_BUY_LIMIT ;
      buylimit_req2.type_filling = ORDER_FILLING_RETURN ;
      buylimit_req2.expiration   = ORDER_TIME_GTC ;
      buylimit_req1.magic        = 02 ;
      
      sellstop_req3.action       = TRADE_ACTION_PENDING ;
      sellstop_req3.symbol       = _Symbol ;
      sellstop_req3.volume       = NormalizeDouble (lot_v, 2 );
      sellstop_req3.price        = SymbolInfoDouble (sellstop_req3.symbol, SYMBOL_ASK )-set_v* _Point ;
      sellstop_req3.sl           = buylimit_req2.price + 10 * _Point ;
      sellstop_req3.type         = ORDER_TYPE_SELL_STOP ;
      sellstop_req3.type_filling = ORDER_FILLING_RETURN ;
      sellstop_req3.expiration   = ORDER_TIME_GTC ;
      
   
   if ( OrdersTotal ()== 0 && PositionsTotal () == 0 )
      {
         OrderSend (order_req, order_res);
         OrderSend (buylimit_req1, buylimit_res1);
         OrderSend (buylimit_req2, buylimit_res2);
         OrderSend (sellstop_req3, sellstop_res3);
      }
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {

  
  }
 
 void OnTick ()
  {
       int count_buy_limits = 0 ;
       for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
        {
           if (o_orderInfo.OrderType()== ORDER_TYPE_BUY_LIMIT )
               {
                  count_buy_limits++;
               }
        }   
       if (count_buy_limits < 2 || PositionsTotal () == 0 )
         {
             for ( int r= PositionsTotal ()- 1 ; r>= 0 ; r--)
               {
                   ulong ticket= PositionGetTicket (r);
                  o_trade.PositionClose(ticket);   
               }  
      
             for ( int o= OrdersTotal ()- 1 ; o>= 0 ; o--)
               {
                   ulong ticket1= OrderGetTicket (o);
                  o_trade.OrderDelete(ticket1);
               }
       ExpertRemove ();
         }
  }
//+------------------------------------------------------------------+
파일:
001.jpg  173 kb
 
Fergert Фергерт :

컴파일 오류가 없습니다..

여기 코드:

나의 예와 당신의 예를 주의 깊게 보십시오. 아무 생각 없이 복사할 수는 없습니다. 당신은 조금 생각해야합니다. 코드에서 오류를 찾습니다.

코드를 올바르게 삽입하십시오 (버튼을 사용하여 암호 귀하의 게시물을 처음으로 수정했습니다.

 
Vladimir Karputov :

나의 예와 당신의 예를 주의 깊게 보십시오. 아무 생각 없이 복사할 수는 없습니다. 당신은 조금 생각해야합니다. 코드에서 오류를 찾습니다.

코드를 올바르게 삽입하십시오 (버튼 사용 - 귀하의 메시지를 처음으로 수정했습니다)

네, 알았습니다...
 
Fergert Фергерт :
네, 알았습니다...

예, 루프를 우회하면 각 반복에서 다음을 수행해야 한다는 것을 잊었습니다.

       if (m_order.SelectByIndex(i))     // selects the pending order by index for further access to its properties

참조:

인덱스별 선택

지정된 인덱스에서 추가 액세스를 위한 순서를 선택합니다.

Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
Документация по MQL5: Стандартная библиотека / Торговые классы / COrderInfo / SelectByIndex
  • www.mql5.com
SelectByIndex(int) - COrderInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov :

예, 루프를 우회하면 각 반복에서 다음을 수행해야 한다는 것을 잊었습니다.

참조:

인덱스별 선택

지정된 인덱스에서 추가 액세스를 위한 순서를 선택합니다.

이봐. 내 말은 ..... 블라디미르 정말 감사합니다 !!!!)))) 행운을 빕니다 ......
 
모든 포럼 사용자에게 좋은 하루. 슬라이더를 전혀 이해할 수 없습니다. 더 정확하게는 mql5에서 두 이동 평균을 읽는 방법은 무엇입니까? 도움말을 읽었지만 여전히 이해할 수 없습니다. 10 및 15 막대에서 빠른 MA 판독값을 취하고 싶습니다. 그리고 10마디와 15마디의 느린 MA도 있지만 그 커플은 이미 혼란스럽고 완전히 혼란스럽습니다. 나는 표준 코드와 참조를 기초로 삼았다. 이 코드를 구현하는 방법을 알려주십시오. 미리 감사드립니다.
 

안녕하세요.

공개 거래로 " 가상 호스팅 "으로의 마이그레이션이 발생하지 않습니까?

아니면 다른 이유?


거래가 종료되었으며 어쨌든 마이그레이션되지 않습니다.

Expert Advisor는 어디에서나 작동하고 로드합니다. 어떤 문제가 있을 수 있습니까?

Виртуальный хостинг для MetaTrader 5
Виртуальный хостинг для MetaTrader 5
  • www.mql5.com
Самый быстрый виртуальный выделенный сервер (VPS) для трейдинга на форексе от производителей терминала MetaTrader 4/5
 
Aleksandr Prishenko :

안녕하세요.

공개 거래로 " 가상 호스팅 "으로의 마이그레이션이 발생하지 않습니까?

아니면 다른 이유?


거래가 종료되었으며 어쨌든 마이그레이션되지 않습니다.

Expert Advisor는 어디에서나 작동하고 로드합니다. 어떤 문제가 있을 수 있습니까?

문제는 고문에게 있습니다. 그건 그렇고, 가상 호스팅 dll에 대한 규칙은 금지되어 있습니다.

사유: