MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 434 1...427428429430431432433434435436437438439440441...1953 새 코멘트 Vladislav Andruschenko 2018.01.24 17:37 #4331 WinProject : 그래픽 개체를 제거하는 방법을 알려주세요. 변수 값으로 이름이 지어진 수직선이 있습니다. 문자열 이름=="테스트1"; 문자열 Vertline="line_"+이름; ObjectCreate(0,VertLine,OBJ_VLINE,0,시간,시나); 이름이 test1인 세로줄만 제거하는 방법은 무엇입니까? 아마도 이 기능은 당신에게 유용할 것입니다: 차트 하위 창에서 이름 접두사로 지정된 유형의 모든 개체를 삭제합니다. int ObjectsDeleteAll ( long chart_id , // 차트 ID const string prefix , // 객체 이름 접두사 정수 sub_window=EMPTY , // 창 인덱스 int object_type=EMPTY // 삭제할 객체 유형 ); WinProject 2018.01.24 17:48 #4332 Vladislav Andruschenko : 아마도 이 기능이 당신에게 유용할 것입니다: 차트 하위 창에서 이름 접두사로 지정된 유형의 모든 개체를 삭제합니다. int ObjectsDeleteAll ( long chart_id , // 차트 ID const string prefix , // 객체 이름 접두사 정수 sub_window=EMPTY , // 창 인덱스 int object_type=EMPTY // 삭제할 객체 유형 ); 감사합니다. 이 함수는 개체 이름의 첫 번째 부분 문자열을 접두사로 이해하지만 개체 이름의 두 번째 부분 문자열을 삭제하는 방법은 무엇입니까? 이 목적을 위해 개체 이름에 StringSubstr 및 StringFind를 사용할 수 있는 방법이 있습니까? Vladislav Andruschenko 2018.01.24 18:14 #4333 WinProject : 고마워, 내가 이해하는 한, 이 함수는 개체 이름의 첫 번째 부분 문자열을 접두사로 이해하지만 개체 이름에서 두 번째 부분 문자열을 삭제하는 방법은 무엇입니까? 이 목적을 위해 개체 이름에 StringSubstr 및 StringFind를 사용할 수 있는 방법이 있습니까? 기다리다, 다음 코드를 제공했습니다. string Vertline= "линия_" +name; 귀하의 접두사는 어디에 있습니까? 모두가 그것을 한다. 그래서 접두사로 개체를 삭제하는 기능을 제공했습니다. "линия_" 접미사로 줄을 삭제해야 하는 경우 모든 개체의 일반적인 열거로 StringFind를 사용할 수 있습니다. 예를 들어: void ObjectsDelete() { string NameEA= "суффикс" ; for ( int i= ObjectsTotal ();i>= 0 ;i--) { if ( StringFind ( ObjectName (i),NameEA)!=- 1 ) ObjectDelete ( ObjectName (i)); } } WinProject 2018.01.24 18:48 #4334 Vladislav에게 감사합니다. 모든 것이 작동합니다. 포럼 회원의 도움으로 MQL이 훨씬 더 흥미로워집니다. 흥미로운 사이트, 감사합니다! mila.com 2018.01.24 20:17 #4335 안녕하세요. 위치가 나타난 후 추적이 중지되는 이유를 알아내도록 도와주세요. 의미는 다음과 같습니다. 두 위치가 1, 2로 열려 있습니다. 동일한 가격에 첫 번째 위치는 후행으로 마감되고, 두 번째 트레일링은 포지션 개시 가격에 하나의 포지션만 있는 조건에서 켜집니다. 모든 것이 제대로 작동하고 위치 1은 닫히고 위치 2는 후행, 그러나 두 개의 위치 3, 4가 다른 가격으로 열리면 흔적은 위치 2를 더 이상 추적하지 않습니다. 그는 왜 트롤링을 중단합니까? void Tral_SL_one( int _TrailingStop= 0 , int _TrailingStep= 0 ) { if (_TrailingStop<= 0 ) return ; for ( int i= 0 ; i< OrdersTotal (); i++) { if (!( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))) continue ; if ( OrderSymbol ()!= Symbol ()) continue ; if ( OrderMagicNumber ()!=_MagicNumber) continue ; if ( OrderType ()== OP_BUY ) { if (NumPosByPrice( Symbol (), OP_BUY , OrderOpenPrice (),_MagicNumber)== 1 ) { if ( NormalizeDouble ( Bid - OrderOpenPrice (), Digits )> NormalizeDouble (_TrailingStop * Point , Digits )) { if ( NormalizeDouble ( OrderStopLoss (), Digits )< NormalizeDouble ( Bid -(_TrailingStop+_TrailingStep- 1 )* Point , Digits ) || OrderStopLoss ()== 0 ) { if ( OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble ( Bid -_TrailingStop* Point , Digits ), OrderTakeProfit (), OrderExpiration ())); } } } } if ( OrderType ()== OP_SELL ) { if (NumPosByPrice( Symbol (), OP_SELL , OrderOpenPrice (),_MagicNumber)== 1 ) { if ( NormalizeDouble ( OrderOpenPrice ()- Ask , Digits )> NormalizeDouble (_TrailingStop * Point , Digits )) { if ( NormalizeDouble ( OrderStopLoss (), Digits )> NormalizeDouble ( Ask +(_TrailingStop+_TrailingStep- 1 )* Point , Digits ) || OrderStopLoss ()== 0 ) { if ( OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble ( Ask +_TrailingStop* Point , Digits ), OrderTakeProfit (), OrderExpiration ())); } } } } } } //=== int NumPosByPrice( string sy= "" , int op=- 1 , double pp= 0 , int mn=- 1 ) { double px,py; int d,i,k= OrdersTotal (),num= 0 ; if (sy== "0" ) sy= Symbol (); for (i= 0 ; i<k; i++) { if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) { if (( OrderSymbol ()==sy || sy== "" ) && (op< 0 || OrderType ()==op)) { if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) { if (mn< 0 || OrderMagicNumber ()==mn) { d= MarketInfo ( OrderSymbol (), MODE_DIGITS ); px= NormalizeDouble (pp, d); py= NormalizeDouble ( OrderOpenPrice (), d); if (pp<= 0 || px==py) num++; } } } } } return (num); } Vladislav Andruschenko 2018.01.24 20:26 #4336 mila.com : 안녕하세요. 위치가 나타난 후 추적이 중지되는 이유를 알아내도록 도와주세요. 의미는 다음과 같습니다. 두 위치가 1, 2로 열려 있습니다. 동일한 가격에 첫 번째 위치는 후행으로 마감되고, 두 번째 트레일링은 포지션 개시 가격에 하나의 포지션만 있는 조건에서 켜집니다. 모든 것이 제대로 작동하고 위치 1은 닫히고 위치 2는 후행, 그러나 두 개의 위치 3, 4가 다른 가격으로 열리면 흔적은 위치 2를 더 이상 추적하지 않습니다. 그는 왜 트롤링을 중단합니까? 심각한 오류만 지적하겠습니다. for ( int i= 0 ; i< OrdersTotal (); i++) { if (!( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))) continue ; if ( OrderSymbol ()!= Symbol ()) continue ; if ( OrderMagicNumber ()!=_MagicNumber) continue ; if ( OrderType ()== OP_BUY ) { if (NumPosByPrice( Symbol (), OP_BUY , OrderOpenPrice (),_MagicNumber)== 1 ) 주문을 정렬한 다음 위치 수를 계산하는 기능을 실행합니다. 따라서 NumPosByPrice 함수에서 다른 위치를 선택합니다. 그래서 추가 건설: if ( NormalizeDouble ( Bid - OrderOpenPrice (), Digits )> NormalizeDouble (_TrailingStop * Point , Digits )) 거의 작동하지 않습니다. 여러 가지 방법으로 이 문제를 해결할 수 있습니다. 예를 들어: void Tral_SL_one( int _TrailingStop= 0 , int _TrailingStep= 0 ) { if (_TrailingStop<= 0 ) return ; for ( int i= 0 ; i< OrdersTotal (); i++) { if (!( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))) continue ; if ( OrderSymbol ()!= Symbol ()) continue ; if ( OrderMagicNumber ()!=_MagicNumber) continue ; if ( OrderType ()== OP_BUY ) { if (NumPosByPrice( Symbol (), OP_BUY , OrderOpenPrice (),_MagicNumber)== 1 ) { OrderSelect (i, SELECT_BY_POS , MODE_TRADES ); if ( NormalizeDouble ( Bid - OrderOpenPrice (), Digits )> NormalizeDouble (_TrailingStop * Point , Digits )) 이것은 근본적으로 잘못된 것이지만 빠른 이해를 위해 도움이 될 것입니다. 후에: if (NumPosByPrice( Symbol (), OP_BUY , OrderOpenPrice (),_MagicNumber)== 1 ) 추가하다 : OrderSelect (i, SELECT_BY_POS , MODE_TRADES ); mila.com 2018.01.24 21:19 #4337 Vladislav Andruschenko : 심각한 오류만 지적하겠습니다. 여러 가지 방법으로 이 문제를 해결할 수 있습니다. 감사합니다, 알겠습니다, tralit) amenrazp 2018.01.26 12:27 #4338 MT4에서 알림 창을 다시 여는 방법을 알려주시겠습니까? 나는 가짜 신호를 생성하고 경고 창을 여는 스크립트를 가지고 있었는데, 지금은 시스템을 다시 설치한 후 인터넷에서 찾을 수 없습니다. 아마도 누군가가 있습니까? Vladislav Andruschenko 2018.01.26 12:47 #4339 amenrazp : MT4에서 알림 창을 다시 여는 방법을 알려주시겠습니까? 나는 가짜 신호를 생성하고 경고 창을 여는 스크립트를 가지고 있었는데, 지금은 시스템을 다시 설치한 후 인터넷에서 찾을 수 없습니다. 아마도 누군가가 있습니까? 경고 (""); 그런 스크립트? amenrazp 2018.01.26 13:01 #4340 Vladislav Andruschenko : 알리다(""); 그런 스크립트? 그것은 그것처럼 보인다. 여기에 붙일 능력이 있습니까? 1...427428429430431432433434435436437438439440441...1953 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
그래픽 개체를 제거하는 방법을 알려주세요. 변수 값으로 이름이 지어진 수직선이 있습니다.
문자열 이름=="테스트1"; 문자열 Vertline="line_"+이름; ObjectCreate(0,VertLine,OBJ_VLINE,0,시간,시나); 이름이 test1인 세로줄만 제거하는 방법은 무엇입니까?
아마도 이 기능은 당신에게 유용할 것입니다:
차트 하위 창에서 이름 접두사로 지정된 유형의 모든 개체를 삭제합니다.
int ObjectsDeleteAll (
long chart_id , // 차트 ID
const string prefix , // 객체 이름 접두사
정수 sub_window=EMPTY , // 창 인덱스
int object_type=EMPTY // 삭제할 객체 유형
);
아마도 이 기능이 당신에게 유용할 것입니다:
차트 하위 창에서 이름 접두사로 지정된 유형의 모든 개체를 삭제합니다.
int ObjectsDeleteAll (
long chart_id , // 차트 ID
const string prefix , // 객체 이름 접두사
정수 sub_window=EMPTY , // 창 인덱스
int object_type=EMPTY // 삭제할 객체 유형
);
감사합니다. 이 함수는 개체 이름의 첫 번째 부분 문자열을 접두사로 이해하지만 개체 이름의 두 번째 부분 문자열을 삭제하는 방법은 무엇입니까? 이 목적을 위해 개체 이름에 StringSubstr 및 StringFind를 사용할 수 있는 방법이 있습니까?
고마워, 내가 이해하는 한, 이 함수는 개체 이름의 첫 번째 부분 문자열을 접두사로 이해하지만 개체 이름에서 두 번째 부분 문자열을 삭제하는 방법은 무엇입니까? 이 목적을 위해 개체 이름에 StringSubstr 및 StringFind를 사용할 수 있는 방법이 있습니까?
기다리다,
다음 코드를 제공했습니다.
귀하의 접두사는 어디에 있습니까?
모두가 그것을 한다.
그래서 접두사로 개체를 삭제하는 기능을 제공했습니다.
"линия_"접미사로 줄을 삭제해야 하는 경우 모든 개체의 일반적인 열거로 StringFind를 사용할 수 있습니다.
예를 들어:
Vladislav에게 감사합니다. 모든 것이 작동합니다. 포럼 회원의 도움으로 MQL이 훨씬 더 흥미로워집니다. 흥미로운 사이트, 감사합니다!
안녕하세요. 위치가 나타난 후 추적이 중지되는 이유를 알아내도록 도와주세요.
의미는 다음과 같습니다. 두 위치가 1, 2로 열려 있습니다. 동일한 가격에 첫 번째 위치는 후행으로 마감되고, 두 번째 트레일링은 포지션 개시 가격에 하나의 포지션만 있는 조건에서 켜집니다.
모든 것이 제대로 작동하고 위치 1은 닫히고 위치 2는 후행, 그러나 두 개의 위치 3, 4가 다른 가격으로 열리면 흔적은 위치 2를 더 이상 추적하지 않습니다.
그는 왜 트롤링을 중단합니까?
안녕하세요. 위치가 나타난 후 추적이 중지되는 이유를 알아내도록 도와주세요.
의미는 다음과 같습니다. 두 위치가 1, 2로 열려 있습니다. 동일한 가격에 첫 번째 위치는 후행으로 마감되고, 두 번째 트레일링은 포지션 개시 가격에 하나의 포지션만 있는 조건에서 켜집니다.
모든 것이 제대로 작동하고 위치 1은 닫히고 위치 2는 후행, 그러나 두 개의 위치 3, 4가 다른 가격으로 열리면 흔적은 위치 2를 더 이상 추적하지 않습니다.
그는 왜 트롤링을 중단합니까?
심각한 오류만 지적하겠습니다.
주문을 정렬한 다음 위치 수를 계산하는 기능을 실행합니다. 따라서 NumPosByPrice 함수에서 다른 위치를 선택합니다.
그래서 추가 건설:
거의 작동하지 않습니다.
여러 가지 방법으로 이 문제를 해결할 수 있습니다.
예를 들어:
이것은 근본적으로 잘못된 것이지만 빠른 이해를 위해 도움이 될 것입니다.
후에:
추가하다 :
심각한 오류만 지적하겠습니다.
여러 가지 방법으로 이 문제를 해결할 수 있습니다.
감사합니다, 알겠습니다, tralit)
MT4에서 알림 창을 다시 여는 방법을 알려주시겠습니까? 나는 가짜 신호를 생성하고 경고 창을 여는 스크립트를 가지고 있었는데, 지금은 시스템을 다시 설치한 후 인터넷에서 찾을 수 없습니다. 아마도 누군가가 있습니까?
MT4에서 알림 창을 다시 여는 방법을 알려주시겠습니까? 나는 가짜 신호를 생성하고 경고 창을 여는 스크립트를 가지고 있었는데, 지금은 시스템을 다시 설치한 후 인터넷에서 찾을 수 없습니다. 아마도 누군가가 있습니까?
알리다(""); 그런 스크립트?
그것은 그것처럼 보인다. 여기에 붙일 능력이 있습니까?