[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 66 1...596061626364656667686970717273...633 새 코멘트 Alekseu Fedotov 2012.04.11 17:14 #651 Fox_RM : 안녕하세요! 특정(사용자 지정) 주문을 여는 문제가 발생했습니다. 이 문제를 해결해야 할 작은 코드를 작성하고 해결하는 것처럼 보이지만 순간이 있습니다. 임의의 수의 주문이 열릴 때 일반적으로 테스트가 끝날 때입니다. 아래는 코드 자체입니다. 문제에 대한 더 간단한 해결책이 있다면 기꺼이 댓글을 달겠습니다. 아마 그게 더 나을거야 extern string Kolichestvo_orderov = "Количество единовременно открытых ордеров" ; extern int OrederBuy = 1 ; extern int OrederSell = 1 ; int OrdS,OrdB,ticketBuy,ticketSell,lastticketSell= 0 ,lastticketBuy= 0 ; //========================================================================================================// //Подсчет количества ордеров BUY & SELL// //========================================================================================================// for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)) { if ( OrderType ()==OP_BUY) { OrdB++ } if ( OrderType ()==OP_SELL) { OrdS++ } } } //========================================================================================================// //---- Открытие ордеров SELL ----// //========================================================================================================// if (OrdS<=OrederSell) { //----- start if (trendDn==true && SthFast> 88.2 && SthSlow< 38.2 ) { ticketSell= OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , 0 ,magick, 0 , Blue ); //--- Если ордер открыт параметр OrdS увеличиваю } } //-----end //========================================================================================================// //----Открытие ордеров BUY ----// //========================================================================================================// if (OrdB<=OrederBuy) { //-----start if (trendUp==true && SthFast< 11.8 && SthSlow> 61.8 ) { ticketBuy= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 , 0 , 0 , 0 ,magick, 0 , Red ); //--- Если ордер открыт параметр OrdB увеличиваю } } //------end //========================================================================================================// Artyom Trishkin 2012.04.11 21:47 #652 Lians : 감사합니다. 하지만 저에게는 너무 복잡하고 귀하의 기능은 한 번에 4개의 메시지를 표시하지만 하나가 필요합니다. 한 줄에 64자를 넘지 않는 것으로 나타났습니까? 아니요. 긴 메시지를 화면에서 읽기 편리한 만큼 분할하되 4개 이하로 나누십시오. 가장 중요한 것은 각 부분이 64자를 초과하지 않는다는 것입니다. 메시지가 짧으면 한 부분에서 함수에 전달할 수 있습니다. 이 기능을 테스트하기 위해 트레일러에 고문을 묶었습니다. 테스터에서 비주얼 모드로 실행하고 시각화 차트에 Win_Inform 표시기를 넣으십시오(예고편의 마지막 게시물에 있음). 이 기능이 어떻게 작동하는지 즉시 알 수 있습니다. 파일: luihrmxh_iprint.mq4 9 kb Сергей 2012.04.12 04:19 #653 r772ra : 아마 그게 더 나을거야 대략 이 코드로 내 업그레이드를 시작했습니다. 귀하의 버전에는 3가지 문제가 있습니다: - OP_BUY 및 OP_SELL 유형의 주문이 열리면 OrdB 및 OrdS 매개 변수가 각 틱마다 자동으로 증가 하므로 해당 티켓(판매 또는 구매) 변경 시에만 재계산 조건을 추가했습니다. - 모든 주문을 다시 계산하면 OrdB 및 Ord에서 오류가 발생하므로 주문의 최신 변경 사항만 계산하면 됩니다.- 귀하의 버전에서는 (OrdB<=OrederBuy) , if (OrdS<=OrederSell)인 경우 추가 주문에 대한 OrdB 및 Ord 매개변수 가 감소하지 않습니다 . 그런 것 같습니다. 가격 변동의 불균등한 확률에 아이디어에서 실제 계정으로. 리버설 트레이딩 시스템 Alekseu Fedotov 2012.04.12 04:55 #654 Fox_RM : 대략 이 코드로 내 업그레이드를 시작했습니다. 귀하의 버전에는 3가지 문제가 있습니다: - OP_BUY 및 OP_SELL 유형의 주문이 열리면 OrdB 및 OrdS 매개 변수가 각 틱마다 자동으로 증가 하므로 해당 티켓(판매 또는 구매) 변경 시에만 재계산 조건을 추가했습니다. - 모든 주문을 다시 계산하면 OrdB 및 Ord에서 오류가 발생하므로 주문의 최신 변경 사항만 계산하면 됩니다.- 귀하의 버전에서는 (OrdB<=OrederBuy) , if (OrdS<=OrederSell)인 경우 추가 주문에 대한 OrdB 및 Ord 매개변수 가 감소하지 않습니다 . 그런 것 같습니다. 예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다. //========================================================================================================// //Подсчет количества ордеров BUY & SELL// //========================================================================================================// OrdS= 0 ; OrdB= 0 ; for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)) { if ( OrderType ()==OP_BUY) { OrdB++ } if ( OrderType ()==OP_SELL) { OrdS++ } } } [삭제] 2012.04.12 09:10 #655 안녕하세요! Kim의 기능을 이해하도록 도와주세요. double FindNearFractal ( string sy = " 0 " , int tf = 0 , int mode = MODE_LOWER ) { if ( sy == "" || sy == " 0 " ) sy = Symbol () ; double f = 0 ; int d = MarketInfo ( sy , MODE_DIGITS ) , s ; if ( d == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) d = 4 ; else d = 2 ; for ( s = 2 ; s < 100 ; s ++ ) { f = iFractals ( sy , tf , mode , s ) ; if ( f != 0 ) return ( NormalizeDouble ( f , d )) ; } Print ( " FindNearFractal(): Фрактал не найден " ) ; return ( 0 ) ; } 라인이 이해가 안감 if ( d == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) d = 4 ; else d = 2 ; 첫 번째 if 뒤에 기호가 없는 이유는 표현식이 다음과 같이 작성되면 어떻게 될까요? StringFind 작업은 무엇이며 문자열 검색이 JPY를 기반으로 하는 이유는 무엇입니까? 어떻게 d = 0이 될 수 있고, 어떤 경우에 2가 할당되고 어떤 경우에 4가 할당됩니까? 나는 대답에 매우 감사 할 것입니다. 미리 감사드립니다))) Сергей 2012.04.12 11:35 #656 r772ra : 예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다. )) 웬일인지, 나는 그것에 대해 스스로 생각하지 않고 감기 시작했습니다. Alekseu Fedotov 2012.04.12 12:26 #657 Fox_RM : )) 웬일인지, 나는 그것에 대해 스스로 생각하지 않고 감기 시작했습니다. 행운을 빕니다 GaryKa 2012.04.12 12:26 #658 Lisi4ka330 : 첫 번째 if 뒤에 기호가 없는 이유, 표현식이 다음과 같이 작성되면 어떻게 될까요? ... 어떻게 d = 0일 수 있으며, 어떤 경우에 2가 할당되고 어떤 경우에 4가 할당됩니까? 나는 대답에 매우 감사 할 것입니다. 미리 감사드립니다))) 그래서 더 명확해질 것 같아요 if ( d == 0 ) { if ( StringFind ( sy , " JPY " ) < 0 ) { d = 4 ; } else { d = 2 ; } } d - 인용 정확도(소수점 뒤의 자릿수) JPY 쌍의 경우 전공 과정은 대략 다음 형식 xxx.xx입니다. 쌍에 JPY가 없는 경우 주요 환율은 약 x.xxxx입니다(따라서 "4 자리 "라는 이름). Сергей 2012.04.12 13:28 #659 r772ra : 예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다. 나는 또 다른 점을 놓쳤다. - 귀하의 버전에서 (OrdB<=OrederBuy), (OrdS<=OrederSell) 인 경우 추가 개시 주문 에 대한 OrdB 및 OrdS 매개변수가 감소하지 않습니다 . 예를 들어 새 버전에서는 5개의 주문을 열고 계산한 다음 if 조건에서 새 주문을 열 수 없습니다. 나는 OrdB-- 및 OrdS- 의 이전 버전을 가지고 있습니다. 사용 된. [아카이브] 순수수학, 물리학, 화학 [아카이브!] 포럼을 어지럽히 지 알고리즘, 결정 방법, 성능 [삭제] 2012.04.12 14:15 #660 GaryKa : 그래서 더 명확해질 것 같아요 d - 인용 정확도(소수점 뒤의 자릿수) JPY 쌍의 경우 전공 과정은 대략 다음 형식 xxx.xx입니다. 쌍에 JPY가 없는 경우 주요 환율은 약 x.xxxx입니다(따라서 "4자리"라는 이름). GaryKa , 답변 감사합니다. d가 0과 같을 수 있는 방법은 약간 불분명합니다. d = MarketInfo ( sy , MODE_DIGITS ) 소수점 이하 자릿수를 반환합니다. 즉, d는 항상 0보다 크고 조건은 항상 거짓입니다. 1...596061626364656667686970717273...633 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
아래는 코드 자체입니다.
문제에 대한 더 간단한 해결책이 있다면 기꺼이 댓글을 달겠습니다.
아마 그게 더 나을거야
감사합니다. 하지만 저에게는 너무 복잡하고 귀하의 기능은 한 번에 4개의 메시지를 표시하지만 하나가 필요합니다. 한 줄에 64자를 넘지 않는 것으로 나타났습니까?
아니요. 긴 메시지를 화면에서 읽기 편리한 만큼 분할하되 4개 이하로 나누십시오. 가장 중요한 것은 각 부분이 64자를 초과하지 않는다는 것입니다. 메시지가 짧으면 한 부분에서 함수에 전달할 수 있습니다.
이 기능을 테스트하기 위해 트레일러에 고문을 묶었습니다. 테스터에서 비주얼 모드로 실행하고 시각화 차트에 Win_Inform 표시기를 넣으십시오(예고편의 마지막 게시물에 있음). 이 기능이 어떻게 작동하는지 즉시 알 수 있습니다.
아마 그게 더 나을거야
대략 이 코드로 내 업그레이드를 시작했습니다. 귀하의 버전에는 3가지 문제가 있습니다:
- OP_BUY 및 OP_SELL 유형의 주문이 열리면 OrdB 및 OrdS 매개 변수가 각 틱마다 자동으로 증가 하므로 해당 티켓(판매 또는 구매) 변경 시에만 재계산 조건을 추가했습니다.
- 모든 주문을 다시 계산하면 OrdB 및 Ord에서 오류가 발생하므로 주문의 최신 변경 사항만 계산하면 됩니다.
- 귀하의 버전에서는 (OrdB<=OrederBuy) , if (OrdS<=OrederSell)인 경우 추가 주문에 대한 OrdB 및 Ord 매개변수 가 감소하지 않습니다 .
그런 것 같습니다.
대략 이 코드로 내 업그레이드를 시작했습니다. 귀하의 버전에는 3가지 문제가 있습니다:
- OP_BUY 및 OP_SELL 유형의 주문이 열리면 OrdB 및 OrdS 매개 변수가 각 틱마다 자동으로 증가 하므로 해당 티켓(판매 또는 구매) 변경 시에만 재계산 조건을 추가했습니다.
- 모든 주문을 다시 계산하면 OrdB 및 Ord에서 오류가 발생하므로 주문의 최신 변경 사항만 계산하면 됩니다.
- 귀하의 버전에서는 (OrdB<=OrederBuy) , if (OrdS<=OrederSell)인 경우 추가 주문에 대한 OrdB 및 Ord 매개변수 가 감소하지 않습니다 .
그런 것 같습니다.
예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다.
안녕하세요! Kim의 기능을 이해하도록 도와주세요.
라인이 이해가 안감
첫 번째 if 뒤에 기호가 없는 이유는 표현식이 다음과 같이 작성되면 어떻게 될까요? StringFind 작업은 무엇이며 문자열 검색이 JPY를 기반으로 하는 이유는 무엇입니까? 어떻게 d = 0이 될 수 있고, 어떤 경우에 2가 할당되고 어떤 경우에 4가 할당됩니까? 나는 대답에 매우 감사 할 것입니다. 미리 감사드립니다)))
예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다.
)) 웬일인지, 나는 그것에 대해 스스로 생각하지 않고 감기 시작했습니다.
행운을 빕니다
그래서 더 명확해질 것 같아요
d - 인용 정확도(소수점 뒤의 자릿수)
JPY 쌍의 경우 전공 과정은 대략 다음 형식 xxx.xx입니다.
쌍에 JPY가 없는 경우 주요 환율은 약 x.xxxx입니다(따라서 "4 자리 "라는 이름).
예, 맞습니다. for 루프 전에 주문 카운터를 재설정해야 합니다.
나는 또 다른 점을 놓쳤다.
- 귀하의 버전에서 (OrdB<=OrederBuy), (OrdS<=OrederSell) 인 경우 추가 개시 주문 에 대한 OrdB 및 OrdS 매개변수가 감소하지 않습니다 .
예를 들어 새 버전에서는 5개의 주문을 열고 계산한 다음 if 조건에서 새 주문을 열 수 없습니다. 나는 OrdB-- 및 OrdS- 의 이전 버전을 가지고 있습니다.
사용 된.
그래서 더 명확해질 것 같아요
d - 인용 정확도(소수점 뒤의 자릿수)
JPY 쌍의 경우 전공 과정은 대략 다음 형식 xxx.xx입니다.
쌍에 JPY가 없는 경우 주요 환율은 약 x.xxxx입니다(따라서 "4자리"라는 이름).