[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 416

 
vegetate писал(а) >>

2차원 배열에서 함수로 1차원을 전달하는 방법을 알려주십시오.

뭔가 혼란스러워.

int testarray[5][2] = {1,2,3,4,5,6,7,8,9,10};// хоть так и можно записать, но в уме нужно держать что это ТАБЛИЦА

void testfunc(int &inarray[] [] ){ // массив нужно передавать "как есть", но обрабатывать можно выбранную часть
string out_str="Result: "+inarray[ i , 0 ];

for (int i=1;i<5;i++){// еще нужно учитывать, что счет в массивах начинается с НУЛЯ. "первый - нулевой"
out_str += (", "+inarray[ i , 0 ]); // здесь бы использовал строковую функцию конкатенации
}
Print(out_str);
}
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
Print("Call first:");
testfunc( testarray );
Print("Call second:");
testfunc( testarray );
//----
return(0);
}
//+-----------

 

동일한 브로커의 플랫폼 사본이 두 개 있습니다. 각각에는 자체 데모 계정 과 공유 폴더 전문가가 있습니다.

첫 번째 항목을 연 다음 닫은 다음 두 번째 항목을 연 다음 두 번째 항목에 암호를 다시 입력해야 합니다.

두 번째를 닫고 첫 번째를 엽니다. 이제 첫 번째 비밀번호가 필요합니다. 이렇게 되어야 합니까?

고맙습니다!

 
Necron писал(а) >>

높음=iHigh(NULL,60,1); 아니면 문제가 있습니까?

물론 모든 것이 맞습니다. 그러나 여러 기간 또는 도구를 사용해야 하는 경우 어드바이저에서 적절한 논리를 수행해야 합니다.

 
Vinin >> :

물론 모든 것이 맞습니다. 그러나 여러 기간 또는 도구를 사용해야 하는 경우 어드바이저에서 적절한 논리를 수행해야 합니다.

알았어, 내가 알아서 할게. 고맙습니다!

 

또 나야.. 너무 야단치지마.. 2주정도 상담사 경험이 있어..

나는 프랙탈 EA에 흔적을 남겼고, 테스트 중 로그에는 무스가 프랙탈을 통해 정기적으로 전송되지만 OrderModify 오류 1 오류가 발생합니다. Kim의 FindNearFractal 기능을 사용했습니다. 코드는 다음과 같습니다.

   for ( cnt = 0 ; cnt < total ; cnt + + )
     {
       OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ;
       if ( OrderType ( ) < = OP_SELL & &    // check for opened position
         OrderSymbol ( ) = = Symbol ( ) )    // check for symbol
         {
         if ( OrderType ( ) = = OP_BUY )    // long position is opened
           {
           // check for trailing stop
             if ( TrailFractal )
               {
               OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , FindNearFractal ( NULL , 0 , MODE_LOWER ) , 0 , 0 , Green ) ;
                     return ( 0 ) ;
                             }
           }
         else // go to short position
           {
             // check for trailing stop
             if ( TrailFractal )
               {               
                     OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , FindNearFractal ( NULL , 0 , MODE_UPPER ) , 0 , 0 , Red ) ;
                     return ( 0 ) ;
               
               }
           }
         }
그리고 추가 질문 하나 더. 코드는 다음과 같습니다.
     for ( int i = 0 ; i < OrdersTotal ( ) ; i + + )
   {
       // выбор ордера
       if ( OrderSelect ( i , SELECT_BY_POS ) = = false ) continue ;
       // not current symbol
       if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ;
   }
if ( OrderType ( ) = = OP_SELL )
{
//при профите >20 pips добавится или докупится ...
 if ( OrderProfit ( ) > 20 ) //////если поставить другое условие открывает много позиций
 OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 3 , sl_sell , 0 , "Ma+Fr" , 16384 , 0 , Red ) ;
  PeriodForSleep = ( ( Time [ 0 ] - Time [ 1 ] ) - ( TimeCurrent ( ) - Time [ 0 ] ) ) * 1000 ; 
Sleep ( PeriodForSleep ) ;
}
if ( OrderType ( ) = = OP_BUY )
{
//при профите >20 pips добавится или докупится ...
 if ( OrderProfit ( ) > 20 ) //////если поставить другое условие открывает много позиций
 OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 3 , sl_buy , 0 , "Ma+Fr" , 16384 , 0 , Lime ) ;
   Sleep ( PeriodForSleep ) ;
}
예를 들어 프랙탈 분석(또는 일반적으로 다른 신호)과 같이 OrderProfit()>20 대신 추가 조건에 넣으면 많은 위치가 열립니다. Sleep() 추가 시도 - 도움이 되지 않았습니다. 여기서 문제가 무엇입니까?
 

일반적으로 OrderModify 오류 1은 새 매개변수가 주문의 매개변수와 정확히 일치할 때 발생합니다.

 
keekkenen >> :

일반적으로 OrderModify 오류 1은 새 매개변수가 주문의 매개변수와 정확히 일치할 때 발생합니다.

고마워, keekkenen! 매개변수가 다릅니다. 답은 여기 에서 찾았습니다. 이 오류에 점수를 매기기 위한 조언(스레드에서) ... NormalizeDouble도 도움이 되지 않습니다.

그리고 두 번째 실수(추가에 대한)에 대해 무엇을 말할 수 있습니까?

 
고문에서 현재 얼마나 많은 종이 이익이 있는지 확인하는 방법, 즉 미결 포지션의 이익은 무엇입니까?
 
dmmikl86 писал(а) >>
고문에서 현재 얼마나 많은 종이 이익이 있는지 확인하는 방법, 즉 미결 포지션의 이익은 무엇입니까?

KimIV에는 GetProfitOpenPosInPoint() 함수가 있습니다.

 
khorosh >> :

KimIV에는 GetProfitOpenPosInPoint() 함수가 있습니다.

그것은 가능하고 작동합니까?

 extern double Level_Profit = 200 ;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
  {
//----
   double paper_money = AccountEquity ( ) - AccountBalance ( ) ;
   if ( paper_money > Level_Profit )
      {
       #include "scripts \s _close_all.mq4"
      }
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

아니면 Expert Advisor에 스크립트 코드를 삽입하는 것이 더 정확할까요?