GetSymbolByName( string symbol)
{
string symbol_name= "" ; // Имя символа на сервере//--- Если передали пустую строку, вернем пустую строкуif (symbol== "" )
return ( "" );
//--- Пройтись по списку всех символов на сервереfor ( int s= 0 ; s< SymbolsTotal ( false ); s++)
{
//--- Получим имя символа
symbol_name= SymbolName (s, false );
//--- Если искомый символ есть на сервереif (symbol==symbol_name)
{
//--- Выберем его в окне "Обзор рынка"SymbolSelect (symbol, true );
//--- Вернем имя символаreturn (symbol);
}
}
//--- Если искомого символа нет, вернем пустую строкуPrint ( "Символ " +symbol+ " не найден на сервере!" );
return ( "" );
}
int OnInit()
{
//---
GetSymbolByName("EURUSD"+SymbolSuffix);
GetSymbolByName("GBPUSD"+SymbolSuffix);
GetSymbolByName("EURGBP"+SymbolSuffix);
}
void OnTimer() // или OnTick
{
if(!SymbolInfoTick("EURUSD"+SymbolSuffix,tickEUR)) {Print("EURUSD price has not been received"); return;}
if(!SymbolInfoTick("GBPUSD"+SymbolSuffix,tickGBP)) {Print("GBPUSD price has not been received"); return;}
if(!SymbolInfoTick("EURGBP"+SymbolSuffix,tickEURGBP)) {Print("EURGBP price has not been received"); return;}
if(tickEUR.ask!=0 && tickEUR.bid!=0) {} // ну и все в этом духе
}
흥미롭게도 어제 MarketBookAdd 및 OnBookEvent의 기능을 사용하여 다중 통화 전문가 고문을 만들고 싶었습니다.
그러나 어떤 이유로 MarketBookAdd는 테스터에서 작동하지 않습니다. 오류 4901 발생 - 시장 깊이를 추가할 수 없습니다.
그래서 실시간으로 만 작동합니다 ...
그리고 나는 한 잔의 가격 이 아니라 다음과 같은 간단한 기능을 가질 필요가 있습니다.
1. Market Watch의 내용을 지웁니다.
2. 거기에 필요한 문자를 추가합니다.
3. 함수나 이벤트를 이용하여 각 심볼에서 Market Watch에 표시되는 모든 틱을 가져오거나 OnTick과 Multi-tick 기능을 공동으로 만듭니다.
그리고 나는 한 잔의 가격 이 아니라 다음과 같은 간단한 기능을 가질 필요가 있습니다.
1. Market Watch의 내용을 지웁니다.
2. 거기에 필요한 문자를 추가합니다.
3. 함수나 이벤트를 이용하여 각 심볼에서 Market Watch에 표시되는 모든 Tick을 얻거나 OnTick과 Multi-tick 기능을 공동으로 만듭니다.
시장 개요 및 틱으로 작업하려는 경우 왜 Depth of Market을 진행하기로 결정했는지 완전히 명확하지 않습니까?
그리고 Market Watch에 표시되거나 추가된 모든 시세에서 데이터를 어디서 얻을 것입니까?
그리고 Market Watch에 표시되거나 추가된 모든 시세에서 데이터를 어디서 얻을 것입니까?
그리고 Market Watch에 표시되거나 추가된 모든 시세에서 데이터를 어디서 얻을 것입니까?
어떤 종류????? 여러 게시물에 어떻게 그렇게 바보가 될 수 있습니까?
타이머가 밀리초를 사용하더라도 EA가 모든 틱 을 처리하는 경우 비효율적으로 작동합니다.
시장 시계에서 모든 틱을 바로 얻을 수 있는 더 쉬운 방법이 필요합니다.
OnTick을 통한 A는 어드바이저가 있는 곳에 다음 틱이 올 때만 작동하기 때문에 불가능합니다.
여기서 여전히 타이머를 통해 해야 합니다. 마지막 틱이 이전 틱과 다르지 않으면 요청하지 않는 방식으로 타이머에 알고리즘을 작성하면 됩니다.
BookEvent는 여기에서 당신을 돕지 않을 것입니다.
여기서 여전히 타이머를 통해 해야 합니다. 마지막 틱이 이전 틱과 다르지 않으면 요청하지 않는 방식으로 타이머에 알고리즘을 작성하면 됩니다.
BookEvent는 여기에서 당신을 돕지 않을 것입니다.
예, 하지만 타이머가 하나뿐이라는 점을 고려해야 합니다. 그렇지 않으므로 VC ++입니다. 임시 섹션에 대한 검사가 많으면 단순히 많은 틱을 잃을 수 있으며 모든 것이 엉망.