전문가를 위한 질문 - 페이지 2 123456789...21 새 코멘트 Константин Скворцов 2008.06.06 13:12 #11 여기에서 코드를 찾았습니다. 내 Expert Advisor에 어떻게 삽입합니까???????????? //+----------------------------------------------------------------------------+ //| Возвращает номер бара открытия последней позиции или -1. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| tf - таймфрейм ( 0 - текущий таймфрейм) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int NumberOfBarOpenLastPos ( string sym = "" , int tf = 0 , int op =- 1 , int mn =- 1 ) { datetime oot ; int i , k = OrdersTotal () ; if ( sym == "" ) sym = Symbol () ; for ( i = 0 ; i < k ; i ++ ) { if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol () == sym ) { if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) { if ( op < 0 || OrderType () == op ) { if ( mn < 0 || OrderMagicNumber () == mn ) { if ( oot < OrderOpenTime ()) oot = OrderOpenTime () ; } } } } } } return ( iBarShift ( sym , tf , oot , True )) ; } Александр 2008.06.06 13:19 #12 Kostay : 지금 고문에게 이상한 일이 일어나고 있습니다. 약속된 포지션 청산은 작동하지 않습니다. 동일한 유형의 여러 위치를 열고 동시에 작동할 수 있습니다. 그리고 결과: 수정된 버전이지만 모든 것이 동일한 문제에 병합됩니다!!?? 수정했습니다. 시도해 보세요. extern double Lots = 0.1 ; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start () { double P_up0 , P_down0 , P_up1 , P_down1 ; double st_m1 , st_s1 , st_m2 , st_s2 , Pivot , ma_s1 ; int i , cnt , ticket , total ; bool flag = true ; if ( Bars < 100 ) { Print ( " bars less than 100 " ) ; return ( 0 ) ; } // Проверяем стоит ли открываться cnt = OrdersHistoryTotal () - 1 ; for ( i = cnt ; i >= 0 ; i -- ) { if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY )) continue ; if ( OrderOpenTime () >= Time [ 0 ]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag = false ; break ; } } cnt = OrdersTotal () - 1 ; for ( i = cnt ; i >= 0 ; i -- ) { if ( ! OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) continue ; if ( OrderOpenTime () >= Time [ 0 ]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag = false ; break ; } } //----------------------------------------------- P_up0 = iCustom ( 0 , 0 , " Ценовой канал " , 11 , 0 , 0 ) ; P_down0 = iCustom ( 0 , 0 , " Ценовой канал " , 11 , 1 , 0 ) ; P_up1 = iCustom ( 0 , 0 , " Ценовой канал " , 11 , 0 , 1 ) ; P_down1 = iCustom ( 0 , 0 , " Ценовой канал " , 11 , 1 , 1 ) ; st_m1 = iStochastic ( 0 , 0 , 10 , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 1 ) ; st_s1 = iStochastic ( 0 , 0 , 10 , 3 , 3 , MODE_SMA , 0 , MODE_SIGNAL , 1 ) ; st_m2 = iStochastic ( 0 , 0 , 10 , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 2 ) ; st_s2 = iStochastic ( 0 , 0 , 10 , 3 , 3 , MODE_SMA , 0 , MODE_SIGNAL , 2 ) ; Pivot = iCustom ( 0 , 0 , " Pivot " , 0 , 1 ) ; ma_s1 = iMA ( 0 , 0 , 4 , 0 , MODE_SMA , PRICE_CLOSE , 1 ) ; //задали все данные // Проверка свободной маржи if ( AccountFreeMargin () < ( 1000 * Lots )) { Print ( " We have no money. Free Margin = " , AccountFreeMargin ()) ; return ( 0 ) ; } total = OrdersTotal () ; // Условие открытие позиции BUY if ( st_m2 > st_s2 && st_m1 > st_s1 && st_m2 < 25 && Pivot < ma_s1 ) { if (( total > 0 ) || ( ! flag )) return ( 0 ) ; ticket = OrderSend ( Symbol () , OP_BUY , Lots , Ask , 3 , 0 , 0 , "" , 0 , 0 , Green ) ; if ( ticket > 0 ) { if ( OrderSelect ( ticket , SELECT_BY_TICKET , MODE_TRADES )) Alert ( " Покупка: " , OrderOpenPrice ()) ; } else Alert ( " ошибка:по цене " , OrderOpenPrice ()) ; return ( 0 ) ; } // Условие открытие позиции SELL if ( st_m2 < st_s2 && st_m1 < st_s1 && st_m2 > 75 && Pivot > ma_s1 ) { if (( total > 0 ) || ( ! flag )) return ( 0 ) ; ticket = OrderSend ( Symbol () , OP_SELL , Lots , Bid , 3 , 0 , 0 , "" , 0 , 0 , Red ) ; if ( ticket > 0 ) { if ( OrderSelect ( ticket , SELECT_BY_TICKET , MODE_TRADES )) Alert ( " Покупка: " , OrderOpenPrice ()) ; } else Alert ( " ошибка:по цене " , OrderOpenPrice ()) ; return ( 0 ) ; } for ( i = cnt ; i >= 0 ; i -- ) { OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ; if ( OrderType () <= OP_SELL && OrderSymbol () == Symbol ()) { if ( OrderType () == OP_BUY ) { // длинная позиция открыта // условие закрытие длинной позиции if ( P_down1 > P_down0 ) { OrderClose ( OrderTicket () , OrderLots () , Bid , 3 , Violet ) ; return ( 0 ) ; } } else { // условие закрытия короткой позиции if ( P_up1 < P_up0 ) { OrderClose ( OrderTicket () , OrderLots () , Ask , 3 , Violet ) ; return ( 0 ) ; } } } } return ( 0 ) ; } Артём 2008.11.10 14:05 #13 안녕하세요. 신경망 을 프로그래밍할 때 다음과 같은 문제가 발생했습니다. 배열이 있습니다: double X[3]; X[0]=1; X[1]=2; X[2]=3; X[3]=4; Comment(X[3]); 4 대신 테스트할 때 0이 나오는데 2차원 배열에서도 마찬가지입니다. 어떻게 해야 합니까? 그리고 이 기회에 나는 두 번째 질문을 할 것입니다. 내가 이해하는 한 mql4에서는 변수에 난수를 할당하기 위한 특정 범위를 설정하는 것이 불가능합니까? 델파이에서는 다음과 같이 보입니다. 무작위화하다; i:=랜덤(10); // 0에서 10까지 같은 범위 Виктор 2008.11.10 15:06 #14 Chris_Brown >> : ..배열이 있습니다. 4 대신 테스트할 때 0이 나오는데 2차원 배열에서도 마찬가지입니다. 어떻게 해야 합니까? 배열을 사용하면 모든 것이 간단합니다. 차원 [3]을 정의하고 네 번째 누락된 셀을 호출합니다. 쓰기 doubleX[4]; 모든 것이 작동합니다. Артём 2008.11.10 15:52 #15 granit77 >> : 배열을 사용하면 모든 것이 간단합니다. 차원 [3]을 정의하고 네 번째 누락된 셀을 호출합니다. 쓰기 doubleX[4]; 모든 것이 작동합니다. 감사합니다. 시도해 보겠습니다. 하지만 무작위는 어떻습니까? Артём 2008.11.10 16:01 #16 그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소 에 0.1의 값이 할당 되면 다음과 같을까요? int i , j ; double W [ 4 ] [ 9 ] ; for ( i = 0 ; i < = 3 ; i + + ) for ( j = 0 ; j < = 8 ; j + + ) W [ i ] [ j ] = 0.1 ; Виктор 2008.11.10 19:32 #17 Chris_Brown >> : 그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요? 작동해야 합니다. 너무 게으르지 않고 전체 행렬을 주석에 한 줄씩 표시하면 결과를 명확하게 볼 수 있습니다. 그건 그렇고, 당신은 주석 기능을 만들고 그것을 사용하여 배열의 내용을 확인할 수 있습니다. 그리고 임의의 집에 대해 - 패스. 그냥 지나가다가 오류를 봤습니다. :)) rsi 2008.11.10 19:54 #18 Chris_Brown писал(а) >> 감사합니다. 시도해 보겠습니다. 하지만 무작위는 어떻습니까? double i=MathRand()/32767.0*10; 도움말에 있습니다. Александр 2008.11.11 07:17 #19 Chris_Brown писал(а) >> 그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요? 사용할 수 있습니다 int 배열초기화 ( 이중 및 배열[], 이중 값) 숫자 배열의 모든 요소를 동일한 값으로 설정합니다. 초기화된 요소의 수를 반환합니다. PapaYozh 2008.11.11 07:47 #20 Chris_Brown писал(а) >> 그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요? int i , j ; double W [ 4 ] [ 9 ] ; for ( i = 0 ; i < = 3 ; i + + ) for ( j = 0 ; j < = 8 ; j + + ) W [ i ] [ j ] = 0.1 ; 작동하지만 다음과 같이 작성하는 것이 좋습니다. int i , j ; double W [ 4 ] [ 9 ] ; for ( i = 0 ; i < 4 ; i + + ) for ( j = 0 ; j < 9 ; j + + ) W [ i ] [ j ] = 0.1 ; 123456789...21 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
여기에서 코드를 찾았습니다.
내 Expert Advisor에 어떻게 삽입합니까????????????
지금 고문에게 이상한 일이 일어나고 있습니다. 약속된 포지션 청산은 작동하지 않습니다. 동일한 유형의 여러 위치를 열고 동시에 작동할 수 있습니다. 그리고 결과: 수정된 버전이지만 모든 것이 동일한 문제에 병합됩니다!!??
수정했습니다. 시도해 보세요.
안녕하세요.
신경망 을 프로그래밍할 때 다음과 같은 문제가 발생했습니다.
배열이 있습니다:
4 대신 테스트할 때 0이 나오는데 2차원 배열에서도 마찬가지입니다. 어떻게 해야 합니까?
그리고 이 기회에 나는 두 번째 질문을 할 것입니다. 내가 이해하는 한 mql4에서는 변수에 난수를 할당하기 위한 특정 범위를 설정하는 것이 불가능합니까?
델파이에서는 다음과 같이 보입니다.
무작위화하다;
i:=랜덤(10); // 0에서 10까지 같은 범위
..배열이 있습니다.
4 대신 테스트할 때 0이 나오는데 2차원 배열에서도 마찬가지입니다. 어떻게 해야 합니까?
배열을 사용하면 모든 것이 간단합니다. 차원 [3]을 정의하고 네 번째 누락된 셀을 호출합니다.
쓰기 doubleX[4]; 모든 것이 작동합니다.
배열을 사용하면 모든 것이 간단합니다. 차원 [3]을 정의하고 네 번째 누락된 셀을 호출합니다.
쓰기 doubleX[4]; 모든 것이 작동합니다.
감사합니다. 시도해 보겠습니다. 하지만 무작위는 어떻습니까?
그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소 에 0.1의 값이 할당 되면 다음과 같을까요?
그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요?
작동해야 합니다. 너무 게으르지 않고 전체 행렬을 주석에 한 줄씩 표시하면 결과를 명확하게 볼 수 있습니다.
그건 그렇고, 당신은 주석 기능을 만들고 그것을 사용하여 배열의 내용을 확인할 수 있습니다.
그리고 임의의 집에 대해 - 패스. 그냥 지나가다가 오류를 봤습니다. :))
감사합니다. 시도해 보겠습니다. 하지만 무작위는 어떻습니까?
그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요?
사용할 수 있습니다
그리고 4 x 9 행렬인 2차원 배열이 있고 각 요소에 0.1의 값이 할당되면 다음과 같을까요?
작동하지만 다음과 같이 작성하는 것이 좋습니다.