전문가를 위한 질문 - 페이지 8

 

안녕하세요. '센세이션! 수익성 있는 토스 전략을 찾았습니다!'

오늘 아침 Rid 는 고문을 게시했습니다. 나는 그것을 다운로드하고 약간 최적화하고 실행했습니다.

데모 계정에서 어드바이저(dax)는 문제 없이 작동합니다(mt4 broco-trade).

난 진짜 내기. 시작 로트=0.01 또는 0.1.

작동하지 않습니다! 로그 반환 오류

2009.06.12 15:17:26 HlopMaster FDAXM9,M1: OrderSend 기능에 대한 유효하지 않은 로트 금액

2009.06.12 15:17:26 HlopMaster FDAXM9,M1: OrderSend()-OP_SELLSTOP 오류. 작업 5087.50000000 sl 0.00000000 tp 0.00000000 4051

//------------------------------------------------ ------------------

이유를 알 수 없습니다.

보증금의 크기를 통해 주어진 로트를 여백으로 설정할 수 있습니다. 어드바이저 코드에서 실제 계정의 작업에는 제한이 없습니다.

그래서 무슨 거래? 말하다!


 

다음은 소스 코드입니다.

...!!!!!!!!!!!!!!!!!!!!!!!! ...........이이이이이이이이이이이이이이이이이이이이이!!!!!!!!!!!!!!!!!!!!!!!!

흥미로운. 코드 제한은 언제 해제되나요? 전문 포럼의 열린 창에 전체 어드바이저 코드를 게시할 수 없는 이유는 무엇입니까?

정상적으로 작동하는 대신 "TOO LARGE TEXT SIZE"라는 응답이 나타납니다.

MQ 회사는 방문자를 망치고 여기에서 올바른 질문을 하지 못하도록 하기 위해 모든 것을 하는 경쟁업체의 잘못 처리된 "코사크"를 사용하는 것처럼 보입니다.



파일:
hlopmaster.mq4  11 kb
 

다음은 코드 조각입니다. 로트 계산을 담당합니다.

 //------------------------------------------------
double GetMaxLot ( ) // Функция возвращает максимальный обьем 
//открытой позиции.  
{ int i ; double maxlot ;
   for ( i = 1 ; i < = OrdersTotal ( ) ; i + + )         
   {
      if ( OrderSelect ( i - 1 , SELECT_BY_POS ) = = true ) 
       {                                   
           if ( ( OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_SELL )  & & OrderSymbol ( ) = = Symbol ( )
          & & maxlot < OrderLots ( ) ) { maxlot = OrderLots ( ) ; }
       }
    }   
return ( maxlot ) ;
}
//-----------------------------------------------
double GetMaxLotOrder ( )
//Функция возвращает максимальный обьем установленных
// стоп ордеров. 
{ int i ; double maxlot ;
   for ( i = 1 ; i < = OrdersTotal ( ) ; i + + )         
   {
      if ( OrderSelect ( i - 1 , SELECT_BY_POS ) = = true ) 
       {                                   
           if ( ( OrderType ( ) = = OP_BUYSTOP | | OrderType ( ) = = OP_SELLSTOP )  & &
           OrderSymbol ( ) = = Symbol ( ) & & maxlot < OrderLots ( ) )
           { maxlot = OrderLots ( ) ; }
       }
    }   
return ( maxlot ) ;
}
//----------------------------------------------
int GetLastTypePos ( ) {
   int i ; datetime dt ; int type ;
      for ( i = 1 ; i < = OrdersTotal ( ) ; i + + )         
      {
         if ( OrderSelect ( i - 1 , SELECT_BY_POS ) = = true ) 
          {                                   
              if ( ( OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_SELL )  & & OrderSymbol ( ) = = Symbol ( ) 
              & & dt < OrderOpenTime ( ) )
              { dt = OrderOpenTime ( ) ; type = OrderType ( ) ; }
          }
       }   
   return ( type ) ;
}
//-----------------------------------------------
int DopOrder ( double Lots )
{
int type = GetLastTypePos ( ) ;
   if ( type = = 1 ) {
     op = Bid + pips * Point ; if ( SL > 0 ) { sl = Bid ; } else { sl = 0 ; } if ( TP > 0 ) { tp = op + TP * Point ; } else { tp = 0 ; }
     err = OrderSend ( Symbol ( ) , OP_BUYSTOP , Lots , NormalizeDouble ( op , Digits ) , 3 , NormalizeDouble ( sl , Digits ) ,
NormalizeDouble ( tp , Digits ) , "FORTRADER.RU" , 0 , 0 , Red ) ;
     if ( err < 0 ) { Print ( "OrderSend()-  Ошибка OP_BUYSTOP. 
                op " + op + " sl " + sl + " tp " + tp + " " + GetLastError ( ) ) ; return ( - 1 ) ; }
   }
   if ( type = = 0 ) {
      op = Ask - pips * Point ; if ( SL > 0 ) { sl = Ask ; } else { sl = 0 ; } if ( TP > 0 ) { tp = op - TP * Point ; } else { tp = 0 ; }
      err = OrderSend ( Symbol ( ) , OP_SELLSTOP , Lots , NormalizeDouble ( op , Digits ) , 3 , NormalizeDouble ( sl , Digits ) ,
NormalizeDouble ( tp , Digits ) , "FORTRADER.RU" , 0 , 0 , Red ) ;
      if ( err < 0 ) { Print ( "OrderSend()-  Ошибка OP_SELLSTOP. 
                   op " + op + " sl " + sl + " tp " + tp + " " + GetLastError ( ) ) ; return ( - 1 ) ; }
   }
return ( 0 ) ;
}
//-------------------------------------------------
int CloseAllPos ( int type )
{  int buy = 1 ; int sell = 1 ;
int i , b = 0 ; int ordertiket ;
 
 if ( type = = 1 )
   {
   while ( buy = = 1 )
     {
        buy = 0 ;
        for ( i = 0 ; i < OrdersTotal ( ) ; i + + )
         {
           if ( true = = OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )
           {
           if ( OrderType ( ) = = OP_BUY & & OrderSymbol ( ) = = Symbol ( ) ) { buy = 1 ; 
                                  OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , Violet ) ; }
           } else { buy = 0 ; }
         }  
         if ( buy = = 0 ) { return ( 0 ) ; }
      } 
   }
   
   if ( type = = 0 )
   {
      while ( sell = = 1 )
     {
        sell = 0 ;
        for ( i = 0 ; i < OrdersTotal ( ) ; i + + )
         {
           if ( true = = OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )
           {
           if ( OrderType ( ) = = OP_SELL & & OrderSymbol ( ) = = Symbol ( ) ) { sell = 1 ;
                                 OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , Violet ) ; }
           } else { sell = 0 ; }
         }  
         
        if ( sell = = 0 ) { return ( 0 ) ; }
      } 
     }
   return ( 0 ) ;
   }
//--------------------------------------------------------


 
Rita писал(а) >>

다음은 코드 조각입니다. 로트 계산을 담당합니다.

Expert Advisor는 실생활에서 작동하도록 설계되지 않았습니다. 다른 도구에 대한 열린 위치가 하나 이상 있으면 작업 논리가 위반됩니다. 물론 원하는 경우 수정할 수 있지만 예를 들어 이 부분에서 큰 의미가 없습니다.

 
고맙습니다. 그리고 왜 그런 이상한 오류가 반환됩니까?
 
Rita писал(а) >>
고맙습니다. 그리고 왜 그런 이상한 오류가 반환됩니까?

오류가 발생했을 가능성이 큽니다.

   if ( OrdersTotal ( ) < 1 ) { err = OpenNewOrders ( ) ; }
   if ( OrdersTotal ( ) > 0 ) { TrailStopOrders ( ) ; }

TrailStopOrders ( )를 호출할 때;

이미 다른 악기에 대한 주문이 있기 때문입니다. 이 경우 어드바이저는 오프닝에 전혀 가지 않습니다.

물론 논리적으로 이해하는 것이 필요하지만.

다른 곳에서 오류가 발생한 것 같습니다. 하지만 확인할 수 없습니다. 열린 자리가 없습니다.

머리로만 확인할 수 있습니다. 그리고 이것을 위해 당신은 내 것이 될 고문이 필요합니다.

 
MT4에는 현재 오늘의 거래에 대한 적립 또는 손실 포인트를 결정하는 시스템이 있습니까?고마워요.
 

정확히 무엇을 원하는지 명확하지 않습니다. 이 디자인을 보세요.

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=45

 
고마워 리타!
 

좋은 저녁이에요. 큰 문제가 있었습니다. 주제가 아닙니다. 그리고 오. 잘못된 시간에.

어젯밤 고양이 ICQ에 이해할 수 없는 링크가 왔다. 나는 무심코 눌렀다.

그 후, comp. 전화를 끊고 SMS를 보낼 것을 제안한 창이 나타났습니다. 그 후에 컴퓨터 잠금을 해제하기위한 암호를 받게 될 것입니다.

컴퓨터를 여러 번 재부팅했습니다. 45-50분 후에 잠금이 해제되었습니다.

하지만 지금은 내 WM 지갑에 들어갈 수 없습니다

일종의 키 액세스 코드가 필요합니다. (키 파일 자체가 있습니다)

나는 무엇을해야할지 모르겠다. 누가 - 닙. 비슷한 상황에 있었나요?