다중 통화 고문에 대한 질문 - 페이지 13 1...67891011121314 새 코멘트 Рита 2009.07.10 09:58 #121 좋은 아침! 제발. 말하다. 이것은 다중 통화 Expert Advisor에서 각 쌍에 대한 위치가 열리는 방법입니다.- //ЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ //-------------------------Изначальная позиция ---------- if ( Trade & & pb = = 0 & & ( iBarShift ( "EURCHF_FX" , timeFr , OpenTime1 ) ! = 0 ) //если нет открытых дл. позиций и не было на этом баре & & Bid_ < Lbid + Delta * Point_ ) { if ( iMA ( "EURCHF_FX" , 0 , period_MA , 0 , MODE_SMMA , PRICE_MEDIAN , 0 ) < iClose ( "EURCHF_FX" , period_TF , 0 ) // || !Filter_DT) { //если фильтр разрешает SL = 0 ; TP = 0 ; if ( StopLoss > 0 ) SL = Ask_ - Point_ * StopLoss ; if ( TakeProfit > 0 ) TP = Ask_ + Point_ * TakeProfit ; ticket = WHCOrderSend ( "EURCHF_FX" , OP_BUY , Lots , Ask_ , 3 , SL , TP , "_001" , Magic , 0 , Blue ) ; if ( ticket < 0 ) { Print ( "Ошибка открытия ордера BUY EURCHF_FX #" , GetLastError ( ) ) ; Sleep ( 10000 ) ; return ( 0 ) ; } initorders ( ) ; OpenTime1 = iTime ( "EURCHF_FX" , timeFr , 0 ) ; } } //жжжжжжжжж Дополнительная позиции жжжжжжжжжжжжжжжжж if ( NumberOfPositions ( "EURCHF_FX" , OP_BUY , Magic ) = = 1 & & NumberOfPositions ( "EURCHF_FX" , OP_BUY , Magic_2 ) < 1 ) { //если открыта начальная позици if ( GetProfitOpenPosInPoint ( "EURCHF_FX" , OP_BUY , Magic ) < = LEVEL_1 & & iBarShift ( "EURCHF_FX" , timeFr , OpenTime1 ) ! = 0 ) { //и если убыток начальн. позиции больше заданного значения SL = 0 ; TP = 0 ; if ( StopLoss > 0 ) SL = Ask_ - Point_ * StopLoss ; if ( TakeProfit > 0 ) TP = Ask_ + Point_ * TakeProfit ; ticket = WHCOrderSend ( "EURCHF_FX" , OP_BUY , Lots + dL2 , Ask_ , 50 , SL , TP , "002" , Magic_2 , 0 , Blue ) ; if ( ticket < 0 ) { Print ( "Ошибка открытия ордера BUY EURCHF_FX #" , GetLastError ( ) ) ; Sleep ( 10000 ) ; return ( 0 ) ; } OpenTime1 = iTime ( "EURCHF_FX" , timeFr , 0 ) ; } } //ЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ 말하다. 이 블록 대신에 어떻게 별도의 함수를 작성할 수 있습니까? 각 쌍에 대해 이 블록을 다시 쓰지 않으려면 ? (블록에서는 Market Watch 거래 주문의 시장 체결 조건에서 I. Kim의 기능과 개시 기능을 사용했습니다.) Victor Nikolaev 2009.07.11 00:57 #122 Rita писал(а) >> 좋은 아침! 제발. 말하다. 이것은 다중 통화 Expert Advisor에서 각 쌍에 대한 위치가 열리는 방법입니다.- 말하다. 이 블록 대신에 어떻게 별도의 함수를 작성할 수 있습니까? 각 쌍에 대해 이 블록을 다시 쓰지 않으려면 ? (블록에서는 Market Watch 거래 주문의 시장 체결 조건에서 I. Kim의 기능과 개시 기능을 사용했습니다.) 무효 FUN(문자열 _Symbol){ // 귀하의 코드이지만 특정 도구 대신 _Symbol이 사용됩니다. } Рита 2009.07.11 08:03 #123 고맙습니다. 그러나 각 쌍에 대한 입찰, 매도, Delta, Lot 및 bool TRADE(이것은 진입 허가임)는 어떻습니까? 이렇게 되는 것이 맞을까요? - void FUN ( string _Symbol , bool TRADE , double _BID , double _AZK , double _Delta , double _LOTS ) { 게다가. 귓가에 한 가지 사용자 정의 함수를 다른 안에 있는 사용자 정의 함수를 사용(호출)하는 것이 옳지 않다는 말을 들은 것 같습니다. 그리고 나는 f-i 블록에서 시장 주문의 시장 실행 조건에서 포지션을 여는 데 사용합니다. Market Watch int WHCOrderSend ( string symbol , int cmd , double volume , double price , int slippage , double stoploss , double takeprofit , string comment , nt magic , datetime expiration , color arrow_color ) { int ticket = OrderSend ( symbol , cmd , volume , price , slippage , 0 , 0 , comment , magic , expiration , arrow_color ) ; int check = - 1 ; if ( ticket > 0 & & ( stoploss ! = 0 | | takeprofit ! = 0 ) ) { if ( ! OrderModify ( ticket , price , stoploss , takeprofit , expiration , arrow_color ) ) { check = GetLastError ( ) ; if ( check ! = ERR_NO_ERROR ) { Print ( "OrderModify error: " , ErrorDescription ( check ) ) ; } } } else { check = GetLastError ( ) ; if ( check ! = ERR_NO_ERROR ) { Print ( "OrderSend error: " , ErrorDescription ( check ) ) ; } } return ( ticket ) ; } 직장에서 문제와 실패가 있습니까? Victor Nikolaev 2009.07.13 03:01 #124 Rita писал(а) >> 고맙습니다. 그러나 각 쌍에 대한 입찰, 매도, Delta, Lot 및 bool TRADE(이것은 진입 허가임)는 어떻습니까? 이렇게 되는 것이 맞을까요? - 게다가. 귓가에 한 가지 사용자 정의 함수를 다른 안에 있는 사용자 정의 함수를 사용(호출)하는 것이 옳지 않다는 말을 들은 것 같습니다. 그리고 나는 f-i 블록에서 시장 주문의 시장 실행 조건에서 포지션을 여는 데 사용합니다. Market Watch 직장에서 문제와 실패가 있습니까? 이중 _Bid=시장 정보(_Symbol, MODE_BID); 이중 _Ask=시장 정보(_Symbol, MODE_ASK); .................................................................. . ....................... 함수 호출은 어디에서나 가능합니다. 문제가 없을 것입니다 Рита 2009.07.13 08:32 #125 확인. 덕분에. Рита 2009.07.20 13:01 #126 안녕하세요! 다중 통화에서 후행을 사용합니다. 여기 하나가 있습니다: void TrailPositions ( ) // функция трейлинг стоп { int Orders = OrdersTotal ( ) ; for ( int i = 0 ; i < Orders ; i + + ) { if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ; if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ; if ( OrderMagicNumber ( ) = = Magic ) { //-------------------------------------- if ( OrderType ( ) = = OP_BUY ) { if ( Bid - OrderOpenPrice ( ) > MinProfit * Point ) { if ( OrderStopLoss ( ) < Bid - ( TrailingStop + TrailingStep - 1 ) * Point ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - TrailingStop * Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //----------------------------------------- if ( OrderType ( ) = = OP_SELL ) { if ( OrderOpenPrice ( ) - Ask > MinProfit * Point ) { if ( OrderStopLoss ( ) > Ask + ( TrailingStop + TrailingStep - 1 ) * Point | | OrderStopLoss ( ) = = 0 ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + TrailingStop * Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //--------------------------------------------- } } } 모든 다중 통화 쌍에 대한 추적을 사용하기 위해 이러한 방식으로 다시 만들었습니다. (Bids-ask-points는 MarketInfo (Symbol_1,MODE_ASK)를 통해 호출됩니다. void TrailPositions ( string _Symbol , double _BID , double _AZK , double _Point , int MAGIC , int MinProfit , int TrailingStop , int TrailingStep ) { int Orders = OrdersTotal ( ) ; for ( int i = 0 ; i < Orders ; i + + ) { if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ; if ( OrderSymbol ( ) ! = _Symbol ) continue ; if ( OrderMagicNumber ( ) = = MAGIC ) { //---------------------------------------------------- if ( OrderType ( ) = = OP_BUY ) { if ( _BID - OrderOpenPrice ( ) > MinProfit * _Point ) { if ( OrderStopLoss ( ) < _BID - ( TrailingStop + TrailingStep - 1 ) * _Point ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , _BID - TrailingStop * _Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //------------------------------------------------------- if ( OrderType ( ) = = OP_SELL ) { if ( OrderOpenPrice ( ) - _AZK > MinProfit * _Point ) { if ( OrderStopLoss ( ) > _AZK + ( TrailingStop + TrailingStep - 1 ) * _Point | | OrderStopLoss ( ) = = 0 ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , _AZK + TrailingStop * _Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //-------------------------------------------------------------- } } } EA는 시가에 대해 작업합니다. 트롤은 다음과 같이 호출됩니다. if ( UseTrailing_1 ) { //выключатель трейлинг стопа 1 пары if ( iTime ( Symbol_1 , TimeFR_1 , 0 ) = = prevtime ) return ( 0 ) ; //ждём появления нового бара prevtime = iTime ( Symbol_1 , TimeFR_1 , 0 ) ; //если появился новый бар , включаемся TrailPositions ( Symbol_1 , Bid1 , Ask1 , Point1 , Magic_1 , MinProfit_1 , TrailingStop_1 , TrailingStep_1 ) ; } //------------------------------------------------------------------------------- if ( UseTrailing_2 ) { //выключатель трейлинг стопа 2 пары if ( iTime ( Symbol_2 , TimeFR_2 , 0 ) = = prevtime ) return ( 0 ) ; //ждём появления нового бара prevtime = iTime ( Symbol_2 , TimeFR_2 , 0 ) ; //если появился новый бар , включаемся TrailPositions ( Symbol_2 , Bid2 , Ask2 , Point2 , Magic_2 , MinProfit_2 , TrailingStop_2 , TrailingStep_2 ) ; } 하지만. 이 포함의 트롤은 작동하지 않습니다. 한 캐릭터의 트롤을 완전히 제거하면 다른 한 쌍의 트롤이 작동하기 시작합니다. 그리고 두 추적 호출이 코드에 모두 있으면 작동하지 않습니다. 제발. 말하다. 어디에서 오류가 발생할 수 있습니까? Victor Nikolaev 2009.07.20 13:25 #127 각 악기와 기간에 대해 고유한 이전 시간을 사용해야 합니다. Рита 2009.07.20 14:35 #128 Vinin 감사합니다 ! 그리고 나는 이미 각 쌍에 대해 나만의 트롤을 작성할 준비가 되어 있었습니다. [삭제] 2012.05.01 18:08 #129 다중 통화에 대한 도움말. 고문이 작성했습니다 . 2개의 EURUSD <-> GBPUSD 쌍에 대한 주문을 동시에 열거나 닫습니다. 나는 EURUSD에 집착합니다. 두 쌍(iOpen)의 따옴표를 읽습니다. 아래 명령이 실행됩니다 Ask_EUR = MarketInfo("EURUSD", MODE_ASK); Bid_EUR = MarketInfo("EURUSD", MODE_BID); 그러나 이러한 명령은 실행되지 않습니다. Ask_GBP = MarketInfo("GBPUSD", MODE_ASK); Bid_GBP = MarketInfo("GBPUSD", MODE_BID); 값 요청 = 입찰가 = 0 말해봐, 무슨 일이야? Leonid Borsky 2012.05.01 18:25 #130 MARKET WATCH 창에 두 번째 쌍이 있습니까? 1...67891011121314 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
좋은 아침!
제발. 말하다. 이것은 다중 통화 Expert Advisor에서 각 쌍에 대한 위치가 열리는 방법입니다.-
말하다. 이 블록 대신에 어떻게 별도의 함수를 작성할 수 있습니까?
각 쌍에 대해 이 블록을 다시 쓰지 않으려면 ?
(블록에서는 Market Watch 거래 주문의 시장 체결 조건에서 I. Kim의 기능과 개시 기능을 사용했습니다.)
좋은 아침!
제발. 말하다. 이것은 다중 통화 Expert Advisor에서 각 쌍에 대한 위치가 열리는 방법입니다.-
말하다. 이 블록 대신에 어떻게 별도의 함수를 작성할 수 있습니까?
각 쌍에 대해 이 블록을 다시 쓰지 않으려면 ?
(블록에서는 Market Watch 거래 주문의 시장 체결 조건에서 I. Kim의 기능과 개시 기능을 사용했습니다.)
무효 FUN(문자열 _Symbol){
// 귀하의 코드이지만 특정 도구 대신 _Symbol이 사용됩니다.
}
고맙습니다. 그러나 각 쌍에 대한 입찰, 매도, Delta, Lot 및 bool TRADE(이것은 진입 허가임)는 어떻습니까?
이렇게 되는 것이 맞을까요? -
게다가. 귓가에 한 가지 사용자 정의 함수를 다른 안에 있는 사용자 정의 함수를 사용(호출)하는 것이 옳지 않다는 말을 들은 것 같습니다.
그리고 나는 f-i 블록에서 시장 주문의 시장 실행 조건에서 포지션을 여는 데 사용합니다. Market Watch
직장에서 문제와 실패가 있습니까?고맙습니다. 그러나 각 쌍에 대한 입찰, 매도, Delta, Lot 및 bool TRADE(이것은 진입 허가임)는 어떻습니까?
이렇게 되는 것이 맞을까요? -
게다가. 귓가에 한 가지 사용자 정의 함수를 다른 안에 있는 사용자 정의 함수를 사용(호출)하는 것이 옳지 않다는 말을 들은 것 같습니다.
그리고 나는 f-i 블록에서 시장 주문의 시장 실행 조건에서 포지션을 여는 데 사용합니다. Market Watch
직장에서 문제와 실패가 있습니까?이중 _Bid=시장 정보(_Symbol, MODE_BID);
이중 _Ask=시장 정보(_Symbol, MODE_ASK);
.................................................................. . .......................
함수 호출은 어디에서나 가능합니다. 문제가 없을 것입니다
안녕하세요!
다중 통화에서 후행을 사용합니다. 여기 하나가 있습니다:
모든 다중 통화 쌍에 대한 추적을 사용하기 위해 이러한 방식으로 다시 만들었습니다.
(Bids-ask-points는 MarketInfo (Symbol_1,MODE_ASK)를 통해 호출됩니다.
EA는 시가에 대해 작업합니다.
트롤은 다음과 같이 호출됩니다.
하지만. 이 포함의 트롤은 작동하지 않습니다.
한 캐릭터의 트롤을 완전히 제거하면 다른 한 쌍의 트롤이 작동하기 시작합니다.
그리고 두 추적 호출이 코드에 모두 있으면 작동하지 않습니다.
제발. 말하다. 어디에서 오류가 발생할 수 있습니까?
각 악기와 기간에 대해 고유한 이전 시간을 사용해야 합니다.
Vinin 감사합니다 !
그리고 나는 이미 각 쌍에 대해 나만의 트롤을 작성할 준비가 되어 있었습니다.
다중 통화에 대한 도움말.
고문이 작성했습니다 . 2개의 EURUSD <-> GBPUSD 쌍에 대한 주문을 동시에 열거나 닫습니다. 나는 EURUSD에 집착합니다. 두 쌍(iOpen)의 따옴표를 읽습니다. 아래 명령이 실행됩니다
Ask_EUR = MarketInfo("EURUSD", MODE_ASK);
Bid_EUR = MarketInfo("EURUSD", MODE_BID);
그러나 이러한 명령은 실행되지 않습니다.
Ask_GBP = MarketInfo("GBPUSD", MODE_ASK);
Bid_GBP = MarketInfo("GBPUSD", MODE_BID);
값 요청 = 입찰가 = 0
말해봐, 무슨 일이야?