//+------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество позиций. |//+------------------------------------------------------------------+int NumberOfPositions (string sy ="",int op =-1,int mn =-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 );}
다중 통화 고문이 있습니다. 쌍은 외부 매개변수에서 설정됩니다. 그의 마법으로 (각 쌍에 대해).
각 악기의 진입 조건은 다음과 같습니다.
if ( NumberOfPositions(Symbol_1, -1,Magic_1)<1){//если нет открытых
//позиций по 1-му инструменту,
또는(두 번째 쌍의 경우)
if ( NumberOfPositions(Symbol_2, -1,Magic_2)<1){//если нет открытых
//позиций по 2-му инструменту, проверяем ОСТАЛЬНЫЕ условия
어제 EURUSD라는 두 가지 기호를 모두 로드했는데 아침에 두 경우 모두 신호가 있었던 것 같기는 하지만 하나의 거래만 열린 것을 알았습니다.
그러다 문득 떠올랐다. 기능은 무엇입니까
NumberOfPositions (string sy ="",int op =-1,int mn =-1)
나는 이 함수를 자주 사용하는데, 입력 매개변수에 따라 모든 것을 반환합니다. 함수에 의해 반복되는 위치는 매개변수별로 순차적으로 정렬됩니다. 예, 직접 확인하십시오.
int NumberOfPositions (string sy ="",int op =-1,int mn =-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 );}
즉, 내 Expert Advisor가 첫 번째 포지션이 열려 있는 동안 다른 마법을 사용하더라도 두 번째 EURUSD 포지션을 열 수 없다는 의미입니까?...
정확히 반대입니다. :) 이것은 함수가 기호와 마법을 별도로 계산한다는 것을 의미합니다. 즉, Magic_1이 있는 EURUSD 포지션이 열리면 NumberOfPositions("EURUSD", -1, Magic_2)==0; 물론 Magic_2에 다른 EURUSD 포지션이 없는 경우입니다.
일반적으로 함수는 원칙(sy && op && mn)에 따라 열린 위치를 계산합니다. 즉, 위치는 이러한 매개변수로 계산됩니다. 하나 이상의 매개변수가 일치하지 않으면 순서가 고려되지 않으며 함수에서 이를 볼 수 없습니다.
댓글에 기능 값을 표시하면 주문 수와 기능의 올바른 작동을 실시간으로 모니터링할 수 있습니다. 알고리즘의 잘못된 작동에 대한 이유는 EA 코드에 있을 가능성이 큽니다.
나는 당신의 조언자를 사용합니다. 아주 좋습니다. 어제 iCustom 을 통해 표시기를 고정하고 싶었지만 그는 그것을 보지 못했습니다. iCustom 을 통해 표시기를 등록하는 방법은 무엇입니까? 흥미로운 점은 iHigh,iLow 와 같은 내장 기능은 문제 없이 볼 수 있지만 표시기에 따르면 지연을 설정하고 싶지 않고 이미 머리가 깨졌습니다. 무엇이 문제가 될 수 있습니까?
현재 데일리바의 iHigh, iLow에 이렇게 등록 되어 있는데 이 기능으로 예상대로 동작하고 딜레이를 설정하는데 인디케이터에 따라 전혀 동작하지 않습니다(((... 누구나 할 수 있다면,iCustom 함수 호출을 통해서만 가능합니다.
모두에게 좋은 하루.
기능에 대한 질문
다중 통화 고문이 있습니다. 쌍은 외부 매개변수에서 설정됩니다. 그의 마법으로 (각 쌍에 대해).
각 악기의 진입 조건은 다음과 같습니다.또는(두 번째 쌍의 경우)
어제 EURUSD라는 두 가지 기호를 모두 로드했는데 아침에 두 경우 모두 신호가 있었던 것 같기는 하지만 하나의 거래만 열린 것을 알았습니다.
그러다 문득 떠올랐다. 기능은 무엇입니까
먼저 심볼 로 오픈 포지션 을 확인합니다. 그리고 다른 모든 것.다시 말해서, EIRUSD 상품에 대해 이미 열린 포지션(이 Expert Advisor에 의해)이 있는 경우, 다른 알고리즘에 따라 다른 마법을 사용하더라도 두 번째 포지션이 열리지 않습니까?
사실인지 아닌지 알려주세요.
아니면 내 추론이 틀렸나요? - 그리고 함수는 주어진 모든 기준을 " 완전히 " 평가하고 차례로 평가하지 않습니다...
나는 이 함수를 자주 사용하는데, 입력 매개변수에 따라 모든 것을 반환합니다. 함수에 의해 반복되는 위치는 매개변수별로 순차적으로 정렬됩니다. 예, 직접 확인하십시오.
즉, 이것은 내 Expert Advisor가 첫 번째 포지션이 열려 있는 동안 다른 마법을 사용하더라도 두 번째 EURUSD 포지션을 열 수 없다는 것을 의미합니까?
분명히 그렇게. 테스터에서도 교차 위치가없는 것처럼 보이기 때문입니다.
//------------------------------------------------ --------
즉, 내 Expert Advisor가 첫 번째 포지션이 열려 있는 동안 다른 마법을 사용하더라도 두 번째 EURUSD 포지션을 열 수 없다는 의미입니까?...
정확히 반대입니다. :) 이것은 함수가 기호와 마법을 별도로 계산한다는 것을 의미합니다. 즉, Magic_1이 있는 EURUSD 포지션이 열리면 NumberOfPositions("EURUSD", -1, Magic_2)==0; 물론 Magic_2에 다른 EURUSD 포지션이 없는 경우입니다.
일반적으로 함수는 원칙(sy && op && mn)에 따라 열린 위치를 계산합니다. 즉, 위치는 이러한 매개변수로 계산됩니다. 하나 이상의 매개변수가 일치하지 않으면 순서가 고려되지 않으며 함수에서 이를 볼 수 없습니다.
댓글에 기능 값을 표시하면 주문 수와 기능의 올바른 작동을 실시간으로 모니터링할 수 있습니다. 알고리즘의 잘못된 작동에 대한 이유는 EA 코드에 있을 가능성이 큽니다.
함수 호출에서 기호에 앵커를 추가해도 도움이 되지 않습니다. 그는 왜 각 포지션에 대한 이익을 별도로 계산합니까(위 그림)?
아니, 차라리 내 그림을 당신에게 제안하고 싶습니다 ...
...그리고 스크립트...
아니, 차라리 내 그림을 당신에게 제안하고 싶습니다 ...
...그리고 스크립트...
'나 자신이 바보야'를 깨달았다…소고기와 우유를 더하면 젖이 빠질 수 없다…
Angela , 컴파일러는 여기에서 내 함수 정의를 볼 것이라고 기대하지 않았습니다. 이것은 코드의 상위 어딘가에 무언가가 없다는 것을 의미합니다. 세미콜론이나 닫는 중괄호일 수 있습니다. 일반적으로 코드를 주의 깊게 확인하십시오.
나는 그것을 알아 냈습니다. 방금 int start () 안에 함수를 삽입했습니다. int start ()에서 꺼내면 모든 것이 컴파일되었습니다. 문제는 다른데, 테스터의 시각화 모드에 있는 지표에서 이 기능은 어드바이저에서 지표로 데이터를 수신하지 않습니다.
Lucky$ & KimIV
http://www.kimiv.ru
안녕하세요 이고르입니다!
나는 당신의 조언자를 사용합니다. 아주 좋습니다. 어제 iCustom 을 통해 표시기를 고정하고 싶었지만 그는 그것을 보지 못했습니다. iCustom 을 통해 표시기를 등록하는 방법은 무엇입니까? 흥미로운 점은 iHigh, iLow 와 같은 내장 기능은 문제 없이 볼 수 있지만 표시기에 따르면 지연을 설정하고 싶지 않고 이미 머리가 깨졌습니다. 무엇이 문제가 될 수 있습니까?
현재 데일리바의 iHigh , iLow에 이렇게 등록 되어 있는데 이 기능으로 예상대로 동작하고 딜레이를 설정하는데 인디케이터에 따라 전혀 동작하지 않습니다(((... 누구나 할 수 있다면, iCustom 함수 호출을 통해서만 가능합니다.
시간이 되시면 감사합니다.