무료로 어드바이저를 작성해 드립니다 - 페이지 156

 
Valeriy Yastremskiy # :

참고로 테스터에서 보고싶다면 실물보다 잠시 후 체크를 제거하시면 됩니다. OnInit에 있습니다. 그리고 테스터의 4k에서 현재 시간에 대한 요청이 테스터의 시간을 반환하는지 기억나지 않습니다. 제 생각에는 현재 시간을 반환하므로 테스터에서는 주문이 즉시 거기에 배치됩니다. 또한 현지 시간을 쿼리하면 현재 현지 시간이 반환됩니다.

이것은 환경의 완전한 에뮬레이터 테스터에서 5k에 있습니다.

설명 감사합니다

 
불행히도 이전 것은 적합하지 않았습니다. 휴식 을 취하다   코드베이스, 거의 필요한 것을 찾았습니다.

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                       http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property  copyright   "Copyright ? 2011, AM2 && Tiburond"
#property  link        " http://www.forexsystems.biz "

#define  MAGIC   20110406

extern   int  StopLoss    =  1300 ;    //???????? ??????
extern   int  StartHour   =  21 ;      //??? ?????? ????????(???????????? ?????)
extern   int  Distance    =  250 ;     //?????????? ?? ???? ??? ????????? ??????
extern   int  Step        =  50 ;      //??? ????????? ???????
extern   int  Count       =  4 ;       //?????????? ??????????????? ???????
extern   int  Expiration  =  4 ;       //????? ????????? ??????
extern   double  Lots     =  1 ;       //???
extern   bool  MM         =  true ;    //?????????? ???????????????
extern   double  TSP      =  5 ;       //????
extern   bool  BU         =  true ;    //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern   int  BUHour      =  2 ;       //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
    return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
    return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
    int  b= 0 ,s= 0 ,res;
    datetime  expiration =  TimeCurrent ()+ 3600 *Expiration;
    double  BuyPrice=fND(Open[ 0 ]-Distance* Point );
    double  SellPrice=fND(Open[ 0 ]+Distance* Point );  
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
     {
       if  ( OrderSelect (i, SELECT_BY_POS))
        {  
          if  (OrderSymbol()!= Symbol () || OrderMagicNumber()!=MAGIC)  continue ;
          if  (OrderType()==OP_BUYLIMIT) b++;
          if  (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
    if  (Hour()>BUHour && Hour()<StartHour && AllProfit()> 0 ) ClosePositions();
    if  (Hour()>BUHour && DayOfWeek() ==  5 ) ClosePositions();  
    if  (Hour()==StartHour && b< 1  && DayOfWeek() !=  5 )
    for (i= 1 ;i<=Count;i++)
    {
     {              
      res= OrderSend ( Symbol (),OP_BUYLIMIT,fLots(),fND(Ask-(Distance* Point +i*Step* Point )), 3 ,fND(BuyPrice-StopLoss* Point ),fND(Open[ 0 ]), "" ,MAGIC,expiration,Blue);      
       Sleep ( 3000 );
       if (res< 0 )
         {
             Print ( "??????: " , GetLastError ());
         }  else  {
            RefreshRates();
         }    
     }
    }
        
    if  (Hour()==StartHour && s< 1  && DayOfWeek() !=  5 )
    for (i= 1 ;i<=Count;i++)
    {  
     {              
      res= OrderSend ( Symbol (),OP_SELLLIMIT,fLots(),fND(Bid+(Distance* Point +i*Step* Point )), 3 ,fND(SellPrice+StopLoss* Point ),fND(Open[ 0 ]), "" ,MAGIC,expiration,Red );
       Sleep ( 3000 );
       if (res< 0 )
         {
             Print ( "??????: " , GetLastError ());
         }  else  {
            RefreshRates();
         }    
     }
    }    
//----  
    return ( 0 );
  }
//+------------------------------------------------------------------+
double  fND( double  d,  int  n=- 1 )
  {  
    if  (n< 0 )  return ( NormalizeDouble (d,  Digits ));
    return ( NormalizeDouble (d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
    double  lot=Lots;
    double   lot_min =MarketInfo(  Symbol (), MODE_MINLOT  );
    double   lot_max =MarketInfo(  Symbol (), MODE_MAXLOT  );
    if  (MM)
     {
       double   lot_step =MarketInfo(  Symbol (), MODE_LOTSTEP );
       double   lotcost =MarketInfo(  Symbol (), MODE_TICKVALUE );      
       double   dollarsPerPip= 0.0 ;

      lot = AccountFreeMargin()*TSP/ 100.0 ;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost,  2 );      
      lot=fND(lot/lot_step,  0 ) * lot_step;
     }
    if  (lot<lot_min) lot=lot_min;
    if  (lot>lot_max) lot=lot_max;
    return (lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
    if (BU)
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
    {
       OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
       if  (OrderSymbol() ==  Symbol ())
       {
          if  (OrderSymbol() ==  Symbol () && OrderMagicNumber() == MAGIC)
          {
             if  (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid,  3 , Blue);
             if  (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask,  3 , Red);
          }
          Sleep ( 1000 );
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
    double  Profit =  0 ;
    for  ( int  i= OrdersTotal ()- 1 ;i>= 0 ;i--)
    {
       OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
       if  (OrderSymbol() !=  Symbol () || OrderMagicNumber() != MAGIC)  continue ;
       if  (OrderSymbol() ==  Symbol () && OrderMagicNumber() == MAGIC)
          if  (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
    return  (Profit);
  }
//+------------------------------------------------------------------+


변경할 수 있도록 도와주세요. 이 Expert Advisor는 미결 주문을 강제로 마감하지 않습니다. 제한을 설정하는 시간과 함께 강제 폐쇄 시간도 설정하는 것이 바람직합니다.
최적화하려면 TP와 트롤이 필요합니다. Thral, 그래서 모든 제한이 약간 있지만 야간 소음을 수집합니다.
Советник по стратегии "Возврат".
Советник по стратегии "Возврат".
  • www.mql5.com
Ночной скальпер. EURUSD H1.
 
안녕하세요. 누가 MT4의 고문에게 도움을 줄 수 있습니까? (마법이 있든 없든) 수동으로 주문한 명령을 수행하려면 종소리와 호루라기가 없는 고문이 필요합니다. 손절매로 주문이 마감되면 EA는 지정된 로트 SL 및 TP와 동일한 방향으로 새 주문을 엽니다. 이익실현으로 주문이 마감되면 EA 는 주어진 로트, SL 및 TP와 반대 방향으로 새로운 주문을 엽니다. 기성품 옵션이있을 수 있지만 아무것도 찾을 수 없습니다. 미리 감사드립니다.
 
Anton Yakovlev :
당신이 좋은 전략을 가지고 있고 그것을 공유할 준비가 되어 있다면, 나는 고문을 쓸 수 있습니다. 공개 토론에 초대합니다
안녕하세요 촛대움직임(패턴)에 따른 지표가 필요합니다 작성가능하신가요, 얼마나, 어떻게 요구사항을 통과해야 하는지 알려주시면 감사하겠습니다.
 
안녕하세요!
mt4용 핍싱 어드바이저를 작성할 수 있습니다.
전략 :
2개의 반대 지정가 매수 지정가/매도 지정가 주문을 스톱, 테이크, 트레일을 사용하여 서로 X 거리에 배치합니다.
예를 들어:
가격이 한도에 집착하고 스톱 또는 테이크에 의해 이 주문을 마감하면 반대 한도가 취소되고 2개의 반대 한도가 다시 설정됩니다.
EA 옵션:
많은
중지
가져가다
트롤 그물
한계 사이의 거리
마법
미끄러짐
 
Ivan Bielyi # :
스프레드 제한이 있는 반대 매수 지정가/매도 지정가 주문 2개 배치

그리고 한계에 대한 확산을 어떻게 제한할 수 있습니까?

 
Evgeny Belyaev # :

그리고 한계에 대한 확산을 어떻게 제한할 수 있습니까?

예를 들어 스프레드가 5p보다 높으면 지연을 설정하지 마십시오. 그러나 이것이 매우 문제가 되는 경우 이 매개변수를 건너뛸 수 있습니다.
 
Ivan Bielyi # :
예를 들어 스프레드가 5p보다 높으면 지연을 설정하지 마십시오. 그러나 이것이 매우 문제가 되는 경우 이 매개변수를 건너뛸 수 있습니다.

이게 무슨 소용이야? 지금은 실행되지 않습니다(이 제한 사항). 그리고 때가 되면 마법은 완전히 달라집니다.

 
Evgeny Belyaev # :

이게 무슨 소용이야? 지금은 실행되지 않습니다(이 제한 사항). 그리고 때가 되면 마법은 완전히 달라집니다.

Tupanul, 다음에는 확실히 이 매개변수 없이)))
 
Daniil Osipov # :
기본으로 무엇을 취하며 알고리즘이 얼마나 복잡한가.

이동 평균을 기반으로 추세를 결정합니다.

TrendUp := MAvg[ 1 ]>TrendUp[ 1 ] ? max(Up,TrendUp[ 1 ]) : Up