더 정확하게 답하려면 어드바이저의 코드를 살펴봐야 합니다. 그러나 이것은 일반적으로 고문을 작성할 때 호출된 지표가 있는 고문 작업의 일부 기능이 고려되지 않을 때 발생합니다. Expert Advisors는 지표 값을 스스로 계산하지 않고 지표 버퍼에서 미리 만들어진 값을 가져옵니다. 따라서 예를 들어 표시기의 이전 값이나 표시기 자체가 수행하는 다른 값을 기억해야 하는 경우 이 모든 것이 고문에게 제공되어야 합니다. 적어도 코드베이스에서 나는 그런 것을 보았지만 표준 확률론이 있는 것처럼 보이지만 이것은 적용되지 않는 "비뚤어진" 지표도 있습니다.
답변 감사합니다만, 별 도움이 되지 않았습니다. 문제를 다시 게시합니다. 다른 사람이 이에 대해 생각하고 있는 것일 수도 있습니다 ???
이 함수는 take로 마지막 위치를 닫기 위한 플래그를 반환합니다. 플래그가 제기됨 - True - TakeProfit이 작동했습니다. 플래그가 생략됨 - False - 다른 이유로 포지션이 마감되었습니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
double ocp, otp;
int dg, i, j=- 1 , k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
ocp= NormalizeDouble (OrderClosePrice(), dg);
otp= NormalizeDouble (OrderTakeProfit(), dg);
if (ocp==otp) return (True);
}
return (False);
}
이 함수는 take로 마지막 위치를 닫기 위한 플래그를 반환합니다. 플래그가 제기됨 - True - TakeProfit이 작동했습니다. 플래그가 생략됨 - False - 다른 이유로 포지션이 마감되었습니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 "" 는 모든 시장 상품을 의미합니다. NULL 은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY , OP_SELL 또는 -1 . 기본값 -1 은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1 은 모든 식별자를 의미합니다.
감사합니다. KIMA 라이브러리를 우연히 발견했습니다. 다른 변형의 최근 거래가 있는 "플래그"입니다...
나는 아직 #includ 를 사용하지 않았습니다 ....
몇 마디로 설명할 수 있습니까?
맨 위에 # include(mqh 파일 이름)를 씁니다.
하지만 코드에서? 사용자 funk를 삽입할 위치는 어디입니까? 예를 들어
GetTypeLastClosePos();
무엇 향후 계획 ?
이것에서 정확히 무엇을 나에게 위치의 TYPE을 반환합니까?
int GetTypeLastClosePos( string sy= "" , int mn=- 1 ) {
datetime t;
int i, k=OrdersHistoryTotal(), r=- 1 ;
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy== "" ) && (mn< 0 || OrderMagicNumber()==mn)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
r=OrderType();
}
}
}
}
}
return (r);
}
감사합니다, 저는 KIM 라이브러리를 우연히 발견했습니다 .. (Kim 동지는 분명히 외환 세계의 MARKS와 같습니다 - CAPITAL을 썼습니다 ... 그리고 우리 모두는 지금 그를 인용합니다 (즉, 우리는 그들을 고문에 삽입합니다)) ... 거기 다른 변형의 최근 거래가 있는 "플래그"입니다...
나는 아직 #includ 를 사용하지 않았습니다 ....
몇 마디로 설명할 수 있습니까?
맨 위에 # include(mqh 파일 이름)를 씁니다.
하지만 코드에서? 사용자 funk를 삽입할 위치는 어디입니까? 예를 들어
GetTypeLastClosePos();
무엇 향후 계획 ?
여기서 정확히 어떤 유형의 위치를 나에게 반환합니까?
주문 유형() ?
저것들. 그런 다음 ( OrderType() ==TRUE ) 그렇게 하면... 맞습니까?
함수는 return(0) 다음에 삽입해야 합니다.
GetTypeLastClosePos() 함수는 매수가 있으면 0을 반환하고 매도가 있으면 1을 반환하거나 기록에 아무것도 없으면 -1을 반환합니다.
//+------------------------------------------------------------------+//| 123.mq4 |//| Copyright 2012, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2012, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----if (isCloseLastPosByTake()== true ) Comment ( "Профит" ); elseComment ( "ХЗ" );
//----return ( 0 );
}
//+------------------------------------------------------------------+//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.05.2008 |//| Описание : Возвращает флаг закрытия последней позиции по тейку. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
datetime t;
double ocp, otp;
int dg, i, j=- 1 , k=OrdersHistoryTotal();
if (sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy== "" ) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
ocp= NormalizeDouble (OrderClosePrice(), dg);
otp= NormalizeDouble (OrderTakeProfit(), dg);
if (ocp==otp) return (True);
}
return (False);
}
더 정확하게 답하려면 어드바이저의 코드를 살펴봐야 합니다. 그러나 이것은 일반적으로 고문을 작성할 때 호출된 지표가 있는 고문 작업의 일부 기능이 고려되지 않을 때 발생합니다. Expert Advisors는 지표 값을 스스로 계산하지 않고 지표 버퍼에서 미리 만들어진 값을 가져옵니다. 따라서 예를 들어 표시기의 이전 값이나 표시기 자체가 수행하는 다른 값을 기억해야 하는 경우 이 모든 것이 고문에게 제공되어야 합니다. 적어도 코드베이스에서 나는 그런 것을 보았지만 표준 확률론이 있는 것처럼 보이지만 이것은 적용되지 않는 "비뚤어진" 지표도 있습니다.
답변 감사합니다만, 별 도움이 되지 않았습니다. 문제를 다시 게시합니다. 다른 사람이 이에 대해 생각하고 있는 것일 수도 있습니다 ???
안녕하세요! 도와주세요 왜 불필요한 주문이 뜨는지 이해가 안가네요
그렇다면 이것은 도움말 개발자를 위한 질문입니다.
여기의 개발자는 그것과 관련이 없습니다. :__
( Hour()>=10 || Hour()<20 ) 대신 간단한 Hour()>=10 && Hour()<20
그리고 모든 것이 효과가 있었다
"만약 마지막 거래가 이익을 내기 위해 마감된 경우 > 0이면 ...."라는 조건이 어떻게 코딩되어 있는지 알아보기 위해 어디를 뒤져야 하는지 알려주세요.
저것들. 이미 마감된 (자동으로) 거래에 대한 회계.
"만약 마지막 거래가 이익을 내기 위해 마감된 경우 > 0이면 ...."라는 조건이 어떻게 코딩되어 있는지 알아보기 위해 어디를 뒤져야 하는지 알려주세요.
저것들. 이미 마감된 (자동으로) 거래에 대한 회계.
https://www.mql5.com/ru/forum/131859
https://www.mql5.com/ru/forum/131859/page4#434230
isCloseLastPosByTake() 함수.
이 함수는 take로 마지막 위치를 닫기 위한 플래그를 반환합니다. 플래그가 제기됨 - True - TakeProfit이 작동했습니다. 플래그가 생략됨 - False - 다른 이유로 포지션이 마감되었습니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.
https://www.mql5.com/ru/forum/131859
https://www.mql5.com/ru/forum/131859/page4#434230
isCloseLastPosByTake() 함수.
이 함수는 take로 마지막 위치를 닫기 위한 플래그를 반환합니다. 플래그가 제기됨 - True - TakeProfit이 작동했습니다. 플래그가 생략됨 - False - 다른 이유로 포지션이 마감되었습니다. 고려할 위치의 보다 정확한 선택은 외부 매개변수에 의해 설정됩니다.
감사합니다. KIMA 라이브러리를 우연히 발견했습니다. 다른 변형의 최근 거래가 있는 "플래그"입니다...
나는 아직 #includ 를 사용하지 않았습니다 ....
몇 마디로 설명할 수 있습니까?
맨 위에 # include(mqh 파일 이름)를 씁니다.
하지만 코드에서? 사용자 funk를 삽입할 위치는 어디입니까? 예를 들어
GetTypeLastClosePos();
무엇 향후 계획 ?
이것에서 정확히 무엇을 나에게 위치의 TYPE을 반환합니까?
주문 유형() ?
저것들. 그런 다음 ( OrderType() ==TRUE ) 그렇게 하면... 맞습니까?
감사합니다, 저는 KIM 라이브러리를 우연히 발견했습니다 .. (Kim 동지는 분명히 외환 세계의 MARKS와 같습니다 - CAPITAL을 썼습니다 ... 그리고 우리 모두는 지금 그를 인용합니다 (즉, 우리는 그들을 고문에 삽입합니다)) ... 거기 다른 변형의 최근 거래가 있는 "플래그"입니다...
나는 아직 #includ 를 사용하지 않았습니다 ....
몇 마디로 설명할 수 있습니까?
맨 위에 # include(mqh 파일 이름)를 씁니다.
하지만 코드에서? 사용자 funk를 삽입할 위치는 어디입니까? 예를 들어
GetTypeLastClosePos();
무엇 향후 계획 ?
여기서 정확히 어떤 유형의 위치를 나에게 반환합니까?
주문 유형() ?
저것들. 그런 다음 ( OrderType() ==TRUE ) 그렇게 하면... 맞습니까?
함수는 return(0) 다음에 삽입해야 합니다.
GetTypeLastClosePos() 함수는 매수가 있으면 0을 반환하고 매도가 있으면 1을 반환하거나 기록에 아무것도 없으면 -1을 반환합니다.
함수는 return(0) 다음에 삽입해야 합니다.
GetTypeLastClosePos() 함수는 매수가 있으면 0을 반환하고 매도가 있으면 1을 반환하거나 기록에 아무것도 없으면 -1을 반환합니다.
덕분에 이해했습니다.
그러나 여전히 함수가 #include-file에 있으면 어떻게 처리합니까?