누가 로봇을 도울 수 있습니까? 로봇이 작동하지 않는 이유는 무엇입니까? - 페이지 5

 
Sergey Gritsay :
컴파일러가 맹세할 가능성이 높지만 오류는 아니지만 경고가 발생해야 합니다.
방금 위의 코드를 컴파일하고 스크린샷을 첨부했습니다. 이상하게도 #property strict 아래에 오류나 경고가 없지만 물론 까다로운 방식이 아닌 한 변수는 여전히 일치하지 않아야 합니다. 나는 일의 논리에 들어가지 않았다.
 

그럼

 //+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict

input double   lots       = 0.01 ;   // Лот
input int      stop_loss      = 10 ; // Указываем в валюте депозита
input int      take_profit    = 20 ; // Указываем в валюте депозита
extern int     Slippage = 3 ;         // Допустимое проскальзываение цены в пунктах
input int      Magic = 16384 ;       // Уникальный номер эксперта

int             last_bar       = 0 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
// ===== Пересчет под пятизнак =========
   if ( Digits ()== 3 || Digits ()== 5 )
     {
      Slippage           *= 10 ;
     }   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (last_bar == Bars ) { return ;}
   last_bar = Bars ;
   if ( OrdersTotal () == 0 ){
           int ticketbuy = OrderSend ( Symbol (), OP_BUY, lots ,Ask, Slippage, 0 , 0 ,   "" , Magic, 0 , clrBlue );
             if (ticketbuy< 0 )
               Print ( Symbol (), " OpenPosition. OrderSend Buy fail #" , GetLastError ());
             else
               Print ( Symbol (), " OpenPosition. OrderSend Buy successfully" );
           int ticketsell = OrderSend ( Symbol (), OP_SELL, lots ,Bid, Slippage, 0 , 0 ,   "" , Magic, 0 , clrRed );
             if (ticketsell< 0 )
               Print ( Symbol (), " OpenPosition. OrderSend Sell fail #" , GetLastError ());
             else
               Print ( Symbol (), " OpenPosition. OrderSend Sell successfully" );      
}
 double profit= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()== _Symbol && OrderMagicNumber()== Magic)
        {
         profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
     }
 int requot= 0 ;
 if (profit>=take_profit || (-profit)>=stop_loss)
   for ( int ii= 0 ;ii< OrdersTotal ();ii++)
     {
       if ( OrderSelect (ii,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()== _Symbol && OrderMagicNumber()== Magic)
        {
         if (OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage, clrRed ))
               requot= 0 ;
             else
              {
               requot++;
              }
         if (requot> 10 )
              {
               ii++;
               requot= 0 ;
              }
            ii--;
        }
     }
 
  }
//+------------------------------------------------------------------+
 
Vladimir Zubov :

그럼

고맙습니다! 내일 확인해봐야겠습니다....
 
Vladimir Zubov :

그럼

테스터를 통해 작동하지만 실제 계정 에서 단일 트랜잭션을 열지 않습니다 ....
 
GIM :
테스터를 통해 작동하지만 실제 계정 에서 단일 트랜잭션을 열지 않습니다 ....
전문가 탭에 몇 가지 항목이 있지만 일반적으로 실제 생활에서 고문은 제 생각에 비뚤어지게 작성됩니다.
 
Sergey Gritsay :
전문가 탭에 몇 가지 항목이 있지만 일반적으로 실제 생활에서는 고문이 비뚤어지게 작성됩니다.
작동하려면 어디서 수정해야 하나요?
 
GIM :
작동하려면 어디서 수정해야 하나요?
어디에서나 나는 여전히이 Expert Advisor의 논리를 서면으로 이해할 수 없습니다. 즉시 다른 방향으로 열리지만이 두 주문의 이익은 항상 동일하며 스왑이 청구 될 때만 변경됩니다.
 
Sergey Gritsay :
어디에서나 나는 여전히이 Expert Advisor의 논리를 서면으로 이해할 수 없습니다. 즉시 다른 방향으로 열리지만이 두 주문의 이익은 항상 동일하며 스왑이 청구 될 때만 변경됩니다.
어드바이저를 차트에 설치할 때 추세에 따라 한 방향으로만 주문이 열리도록 설정하고 여러 쌍의 경우 구매가 있고 어딘가에 판매가 있는 곳에서는 모든 거래를 마감해야 합니다 총 이익에
 
GIM :
어드바이저를 차트에 설치할 때 추세를 따라 한 방향으로만 오더가 열리도록 설정하고 여러 쌍의 경우 어딘가에서 구매하고 어딘가에서 판매하는 모든 거래를 총 이익으로 마감해야합니다
오늘은 너무 늦었습니다. 내일은 옵션을 스케치해 드리겠습니다.
 
Sergey Gritsay :
오늘은 너무 늦었습니다. 내일은 옵션을 스케치해 드리겠습니다.
덕분에!