case1 : // кейс для открытия Buy по AUD/USDif ( Symbol () == (как обозначить нужный символ для сравнения?)) // если символ текущего графика AUD/USD открываем сделку
{
RefreshRates();
Open_Order = OrderSend ( "AUDUSD" ,OP_BUY,Lot(),Ask, 0 , 0 , 0 ); // Открытие ордера//----------------------------------------------------------------------------------------------------
В тоже время советник запущен на другом графике и пытается произвести открытие ордера, цены не совпадают и соответственно вылетает ошибка - неверные цены
case2 : // кейс для открытия Bay по GBP/USD if ( Symbol () == (как обозначить нужный символ для сравнения?))
// если символ текущего графика не AUDUSD то выходим
{
RefreshRates();
Open_Order = OrderSend ( "GBPUSD" ,OP_SELL,Lot(),Bid, 0 , 0 , 0 ); // Открытие ордера
Т.е. надо ему дать понять, что тот или иной кейс принадлежит тому или другому графику, но чтот я пока не придумал как
프로그램이 AUD/USD 쌍에 대한 주문을 열어야 한다는 것을 이해하고 이를 엽니다(이는 정상적으로 작동함). 그러나 동시에 다른 열린 차트 에서 이 주문을 열려고 시도합니다(로봇은 여러 통화 쌍에서 실행), EA가 실행 중인 다른 통화 쌍에 대해 각각 가격 오류로 반환됩니다. 따라서 Symbol() ==가 주문을 열어야 하는 기호와 같으면 해당 기호를 열고, 그렇지 않으면 종료합니다. 나는 터미널에서 심볼의 이름을 설정하고 비교하기 위해 변수로 아무데도 선택하지 않았습니다.
프로그램이 AUD/USD 쌍에 대한 주문을 열어야 한다는 것을 이해하고 이를 엽니다(이는 정상적으로 작동함). 그러나 동시에 다른 열린 차트 에서 이 주문을 열려고 시도합니다(로봇은 여러 통화 쌍에서 실행), EA가 실행 중인 다른 통화 쌍에 대해 각각 가격 오류로 반환됩니다 . 따라서 Symbol() ==가 주문을 열어야 하는 기호와 같으면 해당 기호를 열고, 그렇지 않으면 종료합니다. 나는 터미널에서 심볼의 이름을 설정하고 비교하기 위해 변수로 아무데도 선택하지 않았습니다.
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. Если функция используется для получения информации о последнем тике, то лучше использовать SymbolInfoTick(). Вполне возможно, что по данному символу с...
감사합니다. 하지만 정확한 가격은 필요하지 않습니다. 모든 것이 가격이 좋습니다. 주문이 열린 통화 쌍이 로봇이 연결된 현재 열린 차트 와 일치하지 않는 경우 고문이 주문을 열지 않도록 해야 합니다. 시간대가 있는 새 차트를 열고 필요한 순서를 연 다음 이 차트를 닫는 방식으로 구현할 수 있습니다. 지금 시도하겠습니다.
string symbol;
....
intOnInit ()
{...
symbol= Symbol ();
....
}
voidOnTick ()
...
if (symbol == Symbol ())
{
... //открываем ордер
}
....
내 프로그램은 현재 차트에 액세스하여 현재 장비의 이름을 할당하고 변수에 봉인한 다음 이 변수의 값을 차트의 현재 기호와 비교합니다. 실제로, 그것은 자신과 비교))) Sympol()을 다른 변수와 비교할 수 있는 값으로 어떻게든 변환해야 합니다. 예를 들어:
문자열USDUSD;
(기호() == AUDUSD)
그런 다음 param pam pam .. 어떻게 든 나에게 효과가 있었지만 행복하고 모든 것을 변경해야 하는 대로 변경했습니다. 더 이상 작동하지 않습니다.))
Expert Advisor, 스크립트, 인디케이터는 적용되지 않지만 현재 창에서 작동합니다. 그리고 다른 창/차트 의 전역 변수는 겹치지 않습니다. 그래서 그것은 작동해야합니다)
문자열USDUSD; // 이것은 텍스트 변수이며 초기에는 비어 있습니다. 동일 ""
(Symbol() == AUDUSD) // 이 행 은 AUDUSD 변수와 아무 관련이 없습니다.
Symbol
Возвращает имя символа текущего графика.
stringSymbol ();
Возвращаемое значение
Значение системной переменной _Symbol , в которой хранится имя символа текущего графика.
그러나 주문 개시 기준은 다른 상품/창구에 대해 동일하지 않아야 합니다. 그들이 동일하다면 실제로 모든 창에서 열립니다.
구글링해서 읽을 의향이 조금도 없어서 D:\1.txt 파일을 열었습니다 .
표시기에서 수행하는 가장 좋은 방법은 타이머 1초를 시작하거나 OnCalculate에서 시간(초)을 비교하는 것입니다.
<1초, 종료
아니면 다른 작업 옵션이 있습니까?
한 달 동안 HistorySelect를 업데이트해야 함 + 개체 작업
또는 OnCalculate 비교 시간(초)
<1초, 종료
1초로는 충분하지 않습니다. 요점은 datetime입니다. 1초 미만일 수 없습니다.
최소 밀리초 비교
표시기에서 수행하는 가장 좋은 방법은 타이머 1초를 시작하거나 OnCalculate에서 시간(초)을 비교하는 것입니다.
내 의견으로는 어디에서 수행하는지는 중요하지 않습니다. 유일한 것은 OnCalculate가 틱에 연결되어 있다는 것입니다. 틱이 없으므로 OnCalculate에 대한 호출이 없습니다.
한 달 동안 HistorySelect를 업데이트 하고 개체 작업을 해야 합니다 .
기록선택 빠르지만 1000 + 미만의 개체가 있는 경우 여기에 개체를 이동하거나 지연을 생성하기 위해
매초마다 이러한 개체를 수정합니다.
일반적으로 코드를 작성하면 함정이 즉시 나타납니다. )))
1초면 충분하고 진드기가 올 때까지 덜 자주
차트에 거래를 표시하기 위해 + 막대를 통한 거래 결과 및 글로벌 추세와 같은 일부 반정적 정보
시계 가격 변경 가능
또는 두 번째 옵션에서 시간
제발 말해!
현재 차트 기호를 필요한 기호와 어떻게 비교할 수 있습니까?
프로그램이 AUD/USD 쌍에 대한 주문을 열어야 한다는 것을 이해하고 이를 엽니다(이는 정상적으로 작동함). 그러나 동시에 다른 열린 차트 에서 이 주문을 열려고 시도합니다(로봇은 여러 통화 쌍에서 실행), EA가 실행 중인 다른 통화 쌍에 대해 각각 가격 오류로 반환됩니다. 따라서 Symbol() ==가 주문을 열어야 하는 기호와 같으면 해당 기호를 열고, 그렇지 않으면 종료합니다. 나는 터미널에서 심볼의 이름을 설정하고 비교하기 위해 변수로 아무데도 선택하지 않았습니다.
말해주세요!
현재 차트 기호를 필요한 기호와 어떻게 비교할 수 있습니까?
프로그램이 AUD/USD 쌍에 대한 주문을 열어야 한다는 것을 이해하고 이를 엽니다(이는 정상적으로 작동함). 그러나 동시에 다른 열린 차트 에서 이 주문을 열려고 시도합니다(로봇은 여러 통화 쌍에서 실행), EA가 실행 중인 다른 통화 쌍에 대해 각각 가격 오류로 반환됩니다 . 따라서 Symbol() ==가 주문을 열어야 하는 기호와 같으면 해당 기호를 열고, 그렇지 않으면 종료합니다. 나는 터미널에서 심볼의 이름을 설정하고 비교하기 위해 변수로 아무데도 선택하지 않았습니다.
적절한 가격을 얻는 것의 끝에 예가 있습니다.
감사합니다. 하지만 정확한 가격은 필요하지 않습니다. 모든 것이 가격이 좋습니다. 주문이 열린 통화 쌍이 로봇이 연결된 현재 열린 차트 와 일치하지 않는 경우 고문이 주문을 열지 않도록 해야 합니다. 시간대가 있는 새 차트를 열고 필요한 순서를 연 다음 이 차트를 닫는 방식으로 구현할 수 있습니다. 지금 시도하겠습니다.
아니요, 그런 식으로 작동하지 않습니다.
내 프로그램은 현재 차트에 액세스하여 현재 장비의 이름을 할당하고 변수에 봉인한 다음 이 변수의 값을 차트의 현재 기호와 비교합니다. 실제로, 그것은 자신과 비교))) Sympol()을 다른 변수와 비교할 수 있는 값으로 어떻게든 변환해야 합니다. 예를 들어:
문자열USDUSD;
( 기호() == AUDUSD)
그런 다음 param pam pam .. 어떻게 든 나에게 효과가 있었지만 행복하고 모든 것을 변경해야 하는 대로 변경했습니다. 더 이상 작동하지 않습니다.))
아니요, 그런 식으로 작동하지 않습니다.
내 프로그램은 현재 차트에 액세스하여 현재 장비의 이름을 할당하고 변수에 봉인한 다음 이 변수의 값을 차트의 현재 기호와 비교합니다. 실제로, 그것은 자신과 비교))) Sympol()을 다른 변수와 비교할 수 있는 값으로 어떻게든 변환해야 합니다. 예를 들어:
문자열USDUSD;
(기호() == AUDUSD)
그런 다음 param pam pam .. 어떻게 든 나에게 효과가 있었지만 행복하고 모든 것을 변경해야 하는 대로 변경했습니다. 더 이상 작동하지 않습니다.))
문자열 USDUSD = "USDUSD";
적어도 그렇게.
아니요, 그런 식으로 작동하지 않습니다.
내 프로그램은 현재 차트에 액세스하여 현재 장비의 이름을 할당하고 변수에 봉인한 다음 이 변수의 값을 차트의 현재 기호와 비교합니다. 실제로, 그것은 자신과 비교))) Sympol()을 다른 변수와 비교할 수 있는 값으로 어떻게든 변환해야 합니다. 예를 들어:
문자열USDUSD;
(기호() == AUDUSD)
그런 다음 param pam pam .. 어떻게 든 나에게 효과가 있었지만 행복하고 모든 것을 변경해야 하는 대로 변경했습니다. 더 이상 작동하지 않습니다.))
Expert Advisor, 스크립트, 인디케이터는 적용되지 않지만 현재 창에서 작동합니다. 그리고 다른 창/차트 의 전역 변수는 겹치지 않습니다. 그래서 그것은 작동해야합니다)
문자열USDUSD; // 이것은 텍스트 변수이며 초기에는 비어 있습니다. 동일 ""
(Symbol() == AUDUSD) // 이 행 은 AUDUSD 변수와 아무 관련이 없습니다.
그러나 주문 개시 기준은 다른 상품/창구에 대해 동일하지 않아야 합니다. 그들이 동일하다면 실제로 모든 창에서 열립니다.