포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 384 1...377378379380381382383384385386387388389390391...1178 새 코멘트 Джони Браво 2013.12.30 12:04 #3831 팍! 죄송합니다! 고유한 주문 번호를 추적하는 방법은 무엇입니까? 그것을 변경하는 방법? Alekseu Fedotov 2013.12.30 12:16 #3832 Link_x : 내 예에서: 임의 주문 번호 , 거래량 - 5, 종가, 미끄러짐 0, 화살표 없음. 문서 예에서: order_id, 볼륨 1, 종가에 의한 주문 번호 계산, 슬리피지 3에서 화살표는 빨간색입니다. 영리한 팬케이크이지만 한 가지 강조 표시된 사항이 있습니다. Symbol() 을 처방합니다. 그리고 "어떻게?"라는 코드는 for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) // { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderType ()== OP_BUY ) price= Bid ; else price= Ask ; OrderClose ( OrderTicket (), OrderLots (),price, 3 ,CLR_NONE); } } 이 같은 Джони Браво 2013.12.30 12:57 #3833 r772ra : 이 같은 우와! 이제 포지션을 닫지만 즉시 종료됩니다 . 이렇게 해보자: if ( AccountProfit () > 50 ) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderType ()== OP_BUY ) price= Bid ; else price= Ask ; OrderClose ( OrderTicket (), OrderLots (),price, 3 ,CLR_NONE); } } } 그리고 우리는 $50의 잠재적인 이익으로 모든 포지션을 마감하는 코드를 얻습니다. 매우 감사합니다! 이제 모든 것이 명확해졌습니다! 수업! :) Alexey Semenov 2013.12.30 15:03 #3834 안녕하세요! 똑똑한 사람들을 도와주세요. Profit=10 포인트로 설정했습니다(즉, 두 쌍의 총 수익이 10포인트일 때). 두 개의 미결 거래가 모두 종료되어야 합니다. 그러나 거래는 종료되지 않습니다. 실수는 어디에 있습니까? extern double lotAU= 0.01 ; extern double lotEA= 0.01 ; extern double Profit= 10 ; extern string Сomment = "KVAZ_EURAUD_AUDUSD" ; extern int Magic = 1111 ; int EASell, EABuy, AUSell, AUBuy; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return ( 0 ); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return ( 0 ); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double prof; double bidEA = MarketInfo ( "EURAUD" , MODE_BID ); double askEA = MarketInfo ( "EURAUD" , MODE_ASK ); double bidAU = MarketInfo ( "AUDUSD" , MODE_BID ); double askAU = MarketInfo ( "AUDUSD" , MODE_ASK ); string symEA = "EURAUD" ; string symAU = "AUDUSD" ; for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); prof=prof+ OrderProfit (); Print ( "Profit=" +prof); } if (prof>=Profit) { for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 5 , 0 ); } } double LineEA = iCustom ( Symbol (), 0 , "Ind_2 Line+1" , 0 , 1 ); // Первый инструмент double LineAU = iCustom ( Symbol (), 0 , "Ind_2 Line+1" , 1 , 1 ); // Второй инструмент if (NumberOfPositions( "EURAUD" )== 0 && LineEA > 0.1 && LineAU < - 0.1 ) { EASell = OrderSend (symEA, OP_SELL ,lotEA,bidEA, 3 , 0 , 0 , "KVAZ_EURAUD_AUDUSD" ,Magic, 0 ,Red); } if (NumberOfPositions( "AUDUSD" )== 0 && LineEA > 0.1 && LineAU < - 0.1 ) { AUSell = OrderSend (symAU, OP_SELL ,lotAU,bidAU, 3 , 0 , 0 , "KVAZ_EURAUD_AUDUSD" ,Magic, 0 ,Red); } if (NumberOfPositions( "EURAUD" )== 0 && LineEA < - 0.1 && LineAU > 0.1 ) { EABuy = OrderSend (symEA, OP_BUY ,lotEA,bidEA, 3 , 0 , 0 , "KVAZ_EURAUD_AUDUSD" ,Magic, 0 ,Red); } if (NumberOfPositions( "AUDUSD" )== 0 && LineEA < - 0.1 && LineAU > 0.1 ) { AUBuy = OrderSend (symAU, OP_BUY ,lotAU,bidAU, 3 , 0 , 0 , "KVAZ_EURAUD_AUDUSD" ,Magic, 0 ,Red); } return ( 0 ); } //+------------------------------------------------------------------+ int NumberOfPositions( string sy= "" , int op=- 1 , int mn= 1111 ) { //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) int i, k= OrdersTotal (), kp= 0 ; if (sy== "0" ) sy= Symbol (); for (i= 0 ; i<k; i++) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if ( OrderSymbol ()==sy || sy== "" ) { if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) { if (op< 0 || OrderType ()==op) { if (mn< 0 || OrderMagicNumber ()==mn) kp++; } } } } } return (kp); } 나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............ 네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전 개소리. for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); prof=prof+ OrderProfit (); Print ( "Profit=" +prof); } if (prof>=Profit) { for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); { if ( OrderSymbol ()!= Symbol () || OrderMagicNumber ()!=Magic) continue ; OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 5 , 0 ); } } } [삭제] 2013.12.30 16:37 #3835 안녕하세요! 차트, 현재 막대 및 현재 가격에서 특정 조건에 도달하면 화살표가 나타나고 경고가 한 번 트리거되어 메시지가 표시되도록 만드는 방법을 알려주십시오(코드 예제가 바람직함)? 예를 들어, 아래에서 위로 교차 이동하면 "매수" 메시지와 함께 위쪽 화살표 가 나타나고 "매도" 메시지와 함께 위에서 아래로 화살표가 각각 나타납니다. 미리 감사드립니다. Alekseu Fedotov 2013.12.30 17:42 #3836 alexey1979621 : 안녕하세요! 똑똑한 사람들을 도와주세요. Profit=10 포인트로 설정했습니다(즉, 두 쌍의 총 수익이 10포인트일 때). 두 개의 미결 거래가 모두 종료되어야 합니다. 그러나 거래는 종료되지 않습니다. 실수는 어디에 있습니까? 나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............ 네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전한 헛소리. 1. 개장한 상품의 호가 또는 호가에서 포지션을 청산합니다. 그리고 OrderClosePrice()에 있는 방식이 아닙니다. 이렇게 쓰다 if (prof>=Profit) { for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { double AS= MarketInfo ( OrderSymbol (), MODE_ASK ); double BI= MarketInfo ( OrderSymbol (), MODE_BID ); if ( OrderType ()== OP_BUY ) price=BI; else price=AS; OrderClose ( OrderTicket (), OrderLots (),price, 3 ,CLR_NONE); } } } 이 같은 forexman77 2013.12.30 17:55 #3837 중지 가능성이 있으며 그 후에는 플래그를 원래 상태로 재설정해야 합니다. 차트 에서 어드바이저를 제거하면 이 문제가 해결됩니까? Alexey Semenov 2013.12.30 18:08 #3838 r772ra : 1. 포지션이 오픈된 상품의 매수 또는 매도에 의해 청산된 경우 그리고 OrderClosePrice()에 있는 방식이 아닙니다. 이렇게 쓰다 이 같은 하긴 했는데 위의 부엉이와 관련하여 문제가 해결되지 않습니다. 닫을 때 고문은 단순히 기호와 마법으로 명령을 보지 않고 닫을 필요가 있다고 생각합니다. TarasBY 2013.12.30 18:23 #3839 alexey1979621 : 안녕하세요! 똑똑한 사람들을 도와주세요. Profit=10 포인트로 설정했습니다(즉, 두 쌍의 총 수익이 10포인트일 때). 두 개의 미결 거래가 모두 종료되어야 합니다. 그러나 거래는 종료되지 않습니다. 실수는 어디에 있습니까? 나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............ 네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전한 헛소리. 오류 시 오류. 아마도 다음과 같이 작동할 것입니다. extern double lotAU= 0.01 ; extern double lotEA= 0.01 ; extern double Profit= 10 ; extern string EXP_Comment = "KVAZ_EURAUD_AUDUSD" ; extern int Magic = 1111 ; int EASell, EABuy, AUSell, AUBuy; string gsa_SMB[ 2 ]; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { gsa_SMB[ 0 ] = "EURAUD" ; gsa_SMB[ 1 ] = "AUDUSD" ; return ( 0 ); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return ( 0 ); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int li_N; double prof = 0 ., ld_Price = 0 .; for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); li_N = fGet_NumSymbol ( OrderSymbol (), gsa_SMB); if (li_N < 0 ) continue ; if ( OrderMagicNumber () != Magic) continue ; prof += OrderProfit (); Print ( "Profit=" , prof); } if (prof>=Profit) { for (i= OrdersTotal ()- 1 ; i>= 0 ; i--) { OrderSelect (i, SELECT_BY_POS ); li_N = fGet_NumSymbol ( OrderSymbol (), gsa_SMB); if (li_N < 0 ) continue ; if ( OrderMagicNumber () != Magic) continue ; if ( OrderType () == OP_BUY ) ld_Price = MarketInfo (gsa_SMB[li_N], MODE_BID ); else if ( OrderType () == OP_SELL ) ld_Price = MarketInfo (gsa_SMB[li_N], MODE_ASK ); OrderClose ( OrderTicket (), OrderLots (), ld_Price, 5 ); } } double bidEA = MarketInfo ( "EURAUD" , MODE_BID ), askEA = MarketInfo ( "EURAUD" , MODE_ASK ), bidAU = MarketInfo ( "AUDUSD" , MODE_BID ), askAU = MarketInfo ( "AUDUSD" , MODE_ASK ), LineEA = iCustom ( Symbol (), 0 , "Ind_2 Line+1" , 0 , 1 ), // Первый инструмент LineAU = iCustom ( Symbol (), 0 , "Ind_2 Line+1" , 1 , 1 ); // Второй инструмент if (NumberOfPositions (gsa_SMB[ 0 ], -1, Magic) == 0 ) { if (LineEA > 0.1 ) if (LineAU < - 0.1 ) {EASell = OrderSend (gsa_SMB[ 0 ], OP_SELL , lotEA, bidEA, 3 , 0 , 0 , EXP_Comment, Magic, 0 , Red);} if (LineEA < - 0.1 ) if (LineAU > 0.1 ) {EABuy = OrderSend (gsa_SMB[ 0 ], OP_BUY , lotEA, askEA, 3 , 0 , 0 , EXP_Comment, Magic, 0 , Blue);} } if (NumberOfPositions (gsa_SMB[ 1 ], -1, Magic) == 0 ) { if (LineEA < - 0.1 ) if (LineAU > 0.1 ) {AUBuy = OrderSend (gsa_SMB[ 1 ], OP_BUY , lotAU, askAU, 3 , 0 , 0 , EXP_Comment, Magic, 0 , Blue);} if (LineEA > 0.1 ) if (LineAU < - 0.1 ) {AUSell = OrderSend (gsa_SMB[ 1 ], OP_SELL , lotAU, bidAU, 3 , 0 , 0 , EXP_Comment, Magic, 0 , Red);} } return ( 0 ); } //+------------------------------------------------------------------+ int fGet_NumSymbol ( string fs_Symbol, string ar_SMB[]) { for ( int li_IND = 0 ; li_IND < 2 ; li_IND++) { if (fs_Symbol == ar_SMB[li_IND]) return (li_IND);} return (- 1 ); } //+------------------------------------------------------------------+ ??? Alexander 2013.12.30 18:25 #3840 alexey1979621 : 하긴 했는데 위의 부엉이와 관련하여 문제가 해결되지 않습니다. 닫을 때 고문은 단순히 기호와 마법으로 명령을 보지 않고 닫을 필요가 있다고 생각합니다. 그는 상징이나 마술사를 보지 않아야하며 모든 것이 당신의 고문에 올바르게 기록되어 있습니다. 로그를 보면 어떤 오류가 발생하는지 확인하십시오. 1...377378379380381382383384385386387388389390391...1178 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
고유한 주문 번호를 추적하는 방법은 무엇입니까? 그것을 변경하는 방법?
내 예에서: 임의 주문 번호 , 거래량 - 5, 종가, 미끄러짐 0, 화살표 없음.
문서 예에서: order_id, 볼륨 1, 종가에 의한 주문 번호 계산, 슬리피지 3에서 화살표는 빨간색입니다.
영리한 팬케이크이지만 한 가지 강조 표시된 사항이 있습니다. Symbol() 을 처방합니다.
이 같은그리고 "어떻게?"라는 코드는
이 같은
그리고 우리는 $50의 잠재적인 이익으로 모든 포지션을 마감하는 코드를 얻습니다.
매우 감사합니다!
이제 모든 것이 명확해졌습니다!
수업! :)
나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............
네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전 개소리.
안녕하세요! 똑똑한 사람들을 도와주세요. Profit=10 포인트로 설정했습니다(즉, 두 쌍의 총 수익이 10포인트일 때). 두 개의 미결 거래가 모두 종료되어야 합니다. 그러나 거래는 종료되지 않습니다. 실수는 어디에 있습니까?
나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............
네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전한 헛소리.
1. 개장한 상품의 호가 또는 호가에서 포지션을 청산합니다.
그리고 OrderClosePrice()에 있는 방식이 아닙니다.
이렇게 쓰다
이 같은1. 포지션이 오픈된 상품의 매수 또는 매도에 의해 청산된 경우
그리고 OrderClosePrice()에 있는 방식이 아닙니다.
이렇게 쓰다
이 같은안녕하세요! 똑똑한 사람들을 도와주세요. Profit=10 포인트로 설정했습니다(즉, 두 쌍의 총 수익이 10포인트일 때). 두 개의 미결 거래가 모두 종료되어야 합니다. 그러나 거래는 종료되지 않습니다. 실수는 어디에 있습니까?
나는 닫을 때 고문이 단순히 기호와 마술에 의한 명령을 보지 못한다는 것을 지적으로 이해합니다. 그리고 다............
네, 다른 선택지가 있었습니다. 거래는 1건만 성사되었고 10포인트의 이익을 위한 조건은 지켜지지 않았습니다. 한마디로 완전한 헛소리.
오류 시 오류. 아마도 다음과 같이 작동할 것입니다.
???
하긴 했는데 위의 부엉이와 관련하여 문제가 해결되지 않습니다. 닫을 때 고문은 단순히 기호와 마법으로 명령을 보지 않고 닫을 필요가 있다고 생각합니다.
그는 상징이나 마술사를 보지 않아야하며 모든 것이 당신의 고문에 올바르게 기록되어 있습니다. 로그를 보면 어떤 오류가 발생하는지 확인하십시오.