Erros, bugs, perguntas - página 1803
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Ou, como acabou de ser dito aqui, pedir o número de barras, também alguns ciclos.
Isto também se aplica aos indicadores. Criar um temporizador de 1 minuto e pedir o número de barras de todas as séries cronológicas de interesse.
A verificação do facto de o momento não se aplica ao momento.
Caros programadores! Mais uma vez peço para adicionar tempo em ms para valores de sentimento(SYMBOL_SESSION_...) e tumbler( OnBookEvent()) o mais rápido possível. Dê uma oportunidade de fazer a sincronização de todos os dados disponíveis!
Metaquotes-Demo, símbolo DIG-20170330
SymbolInfoDouble(Symb,SYMBOL_SESSION_PRICE_LIMIT_MIN) = 29528.0
(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb,SYMBOL_TRADE_MODE) = SYMBOL_TRADE_MODE_FULL (4)
Erro em SYMBOL_SESSION_PRICE_LIMIT_MIN: acima Ask - no BuyLimit pode ser definido.
Por favor partilhe a sua bicicleta: uma função bool que lhe diz se um símbolo está ou não pronto a ser comercializado.
{
MqlDateTime sTime = {0};
TimeToStruct(time, sTime);
return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}
// true - находимся в торговой сессии
bool SessionTrade( string Symb = NULL )
{
datetime TimeNow = TimeTradeServer();
const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);
TimeNow %= 24 * 60 * 60;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
bool Res = false;
datetime From, To;
for (int i = 0; SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To) && (!Res); i++)
Res = ((From <= TimeNow) && (TimeNow < To));
return(Res);
}
// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( string Symb = NULL, const int Pause = -1 )
{
MqlTick Tick;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
return(SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) &&
((ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL)) : false);
}
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
E se estiver num indicador?
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
fxsaber, 2017.02.14 12:31
Imediatamente após SymbolSelect(true), solicito preços e estes são zero. Com _LastError == 0, SymbolInfoTick == verdadeiro.
Como sei que os preços do novo símbolo do Marketwatch foram entregues à Marketwatch?
Daí as pernas.
Se o indicador traça alguns dados estatísticos sobre símbolos que não são conhecidos de antemão, ao seleccionar o próximo símbolo do painel, muitas vezes não pode obter os dados para ele de uma só vez, e a tabela conterá informações falsas... Como posso ter a certeza de que os dados recebidos do símbolo estão correctos e em quantidades suficientes para obter mais cálculos correctos?
Sinceramente, não estou a perceber. Estava a pensar: como é que sabe se um símbolo está pronto num indicador? Sleep() não funciona em indicadores.
Se o indicador mostrar na tabela alguns dados estatísticos sobre símbolos que não são conhecidos antecipadamente, então quando selecciona o próximo símbolo do painel, muitas vezes não pode obter imediatamente os dados para ele, e a tabela mostra informações falsas... Como posso ter a certeza, para mais cálculos, que os dados obtidos a partir do símbolo estão correctos, e em quantidades suficientes para obter mais cálculos correctos?