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
Você poderia escrever uma função como esta:
Se você a chamar sem o valor final, o valor padrão será usado , ou seja, o tamanho da fonte será 10
Ou você pode anular explicitamente o valor padrão do tamanho da fonte:
É isso que você quer dizer?
É isso que você quer dizer?
Talvez meu inglês impeça de entender seu comentário.
Obrigado por seu comentário.
Se eu estou entendendo corretamente, entendo você assim: Eu posso escrever 1x Função Void para Label, e posso usá-la com dois métodos como abaixo. ( Posso usar uma função de Vácuo, para rotular objetos com parâmetro de tamanho de fonte e sem ele, isso é correto? )
DrawLabel("MyLabel","Hello,World!",50,50,24); // #2
Portanto, gostaria de dizer que passei algumas horas para este Objeto de Planilha para onde esse problema vem e como posso resolvê-lo.
Então, sinto que vem de baixo do código, não das funções de Rótulo, porque tive 2x funções de Rótulo, removi um deles, indicadores de preço Bid and Ask ( preços de mercado ) ainda funciona bem, mas a Planilha não funciona com a função de Rótulo. A planilha funciona bem sem a função de Rótulo.
Preciso compartilhar um pouco do código da Planilha de Cálculo. Duvido como o código abaixo. ( Mesmo - preciso mencionar mais uma vez que abaixo do código funciona bem quando crio um objeto Label sem função Label para Spreadsheet )
spread = MarketInfo ( symbol, MODE_SPREAD ) / 10;
spreadstring = DoubleToStr ( spread, 1 ) ;
Obrigado por tudo.
Bem, é uma boa prática para verificar se algo que você tenta criar, realmente é criado.
Por exemplo, quando se trata de tamanhos de tela, muitos usuários usam resoluções diferentes, e sempre que por que razão um objeto é criado acima dos limites de largura ou altura do gráfico, o objeto não é desenhado, ou desaparece.
Ou, por exemplo, o erro 4200 mostrará que o objeto que você está tentando criar já existe.
Isto é importante se você estava tentando atribuir valores diferentes ao seu objeto, os novos valores não serão atribuídos se a criação falhar.
É por isso que essas funções retornam um valor para que você possa verificar se a criação foi bem sucedida ou não.
Cabe a você verificar se a função foi bem sucedida ou não, mas um bom codificador irá verificar o resultado.
Se você escrever uma função vazia, ela não retorna nada para que você não possa verificar o resultado, analisando o que volta quando você a chama.
Mas você também pode simplesmente verificar a função em si e criar um simples alerta se algo deu errado.
Se você fizer isso, então você não verá esses alertas normalmente, mas sempre que algo der errado, ele o apontará imediatamente para o problema em si.
Para o segundo problema você pode muitas vezes omitir pelo menos alguns dos parâmetros, se você fizer isso, então a função assumirá os valores padrão.
Portanto, a menos que você precise ou queira desviar os parâmetros padrão, você os especifica.
O tamanho da fonte é um bom exemplo quando você não especifica, ele simplesmente utilizará as configurações padrão.
Também há pequenas diferenças entre certos objetos e isto pode ser visto ao analisar os parâmetros que são passados para a função.
Nem todos compartilham o mesmo conjunto de variáveis, portanto é importante observar o que pode e o que não pode ser passado como referência.
Não tenho certeza do que você quer fazer com o spreadstring talvez você possa explicar um pouco mais para que ele serve e como quer usá-lo ?
Não tenho certeza do que você quer fazer com o spreadstring talvez você possa explicar um pouco mais para que ele serve e como quer usá-lo ?
Uso a função Label Object para Licitações, Pedidos, Planilhas e assim por diante. Tudo funciona perfeitamente, sem planilha - e eu a apaguei e reescrevi, sem bons efeitos.
Depois de usar @honest_knave método de código de erro para descrição do erro. Eu não vejo mais avisos 4200.
Como mencionei, uso'Spreadsheet' em dois lugares, #1 na função Init() - #2 na função OnTick(), mas também uso Bid, Ask in 2 lugares com 'Spreadsheet', eles não têm nenhum erro, avisos. Mas esta planilha não me dá nenhuma advertência, mas também não atualiza.
Criação absolutamente bem sucedida, sem erros, sem avisos, para quaisquer objetos, nos códigos da minha EA.
Não sei se sou um bom codificador ou o quê?! ( Eu não considero que sou codificador ou programador. ) Mas vejo resultados. Portanto, posso usar apenas o objeto Label ( sem função apenas para planilha eletrônica ).
A função de anulação retorna resultados para o que eu quero, também esta função cria objeto para valor de propagação inicial, mas não atualiza.
Não tenho certeza do que você quer fazer com o spreadstring talvez você possa explicar um pouco mais para que ele serve e como você quer usá-lo?
OK, eu só quero usá-lo assim: Só quero que ele me dê o Tamanho da Planilha ( / Valor ), quando eu abrir / adicionar minhas EA's ao gráfico, por enquanto. Então eu tentarei escrever o código para a Hora de Espalhamento Alto / Baixo tamanho ( / valores ).
Obrigado antecipadamente.
Bem, você também pode armazená-lo em uma matriz dupla[] e depois comparar todos eles para ver onde se encontra a menor propagação.
--
ArrayResize(spread,SymbolsTotal(1),0);
for(int i=0;i<SymbolsTotal(1);i++)
{
spread[i]=MarketInfo(SymbolName(i,1),13);
}
Quando retiro o código abaixo, então a planilha começa a funcionar perfeitamente.
Então, eu só preciso ajudar, como posso escrever um bom ( / Ótimo ) código em vez dele, por favor?
Print(__FUNCTION__, ": failed to create text label! Error code = ", GetLastError());
return(false);
}
Eu apenas mantenho abaixo do código para a função Label Object.
Obrigado de antemão.
( se este problema for real - espero que a MetaQuotes o conserte - porque demorou algumas horas comigo, ajude outros que são novos nesta indústria de códigos )
Elimine o "return(false)", mas mantenha a declaração impressa e execute seu código.
Acho que você pode receber algumas mensagens. Estou pensando que você está tentando criar o rótulo repetidamente, em vez de mudar o valor.
Apague o "return(false)", mas mantenha a declaração impressa e execute seu código.
O QUE O BONCO!
Esta merda** levou minhas poucas horas, não sei o que posso dizer sobre isso.
Posso removê-lo de todas as minhas funções Objetos?
Você também pode me informar como funciona?
Apenas obrigado.
O QUE O BOLSO!
Posso removê-lo de todas as minhas funções de Objetos?
Sim, mas seria melhor mantê-lo e abordar a fonte do erro.
O QUE O BEM!
Vocêtambém pode me informar como funciona?
O operador de retorno simplesmente diz à função para sair imediatamente. Se a função retorna um valor (no seu caso, é um bool), você também deve retornar um valor.
Você se livrará de seu erro (4200, certo?) se você verificar se o objeto existe antes de criá-lo.
Obrigado por seus comentários claros.
Eu já o substituí por seu método, como o código abaixo. ( para a função Label Object )
foi - antes de seus comentários sobre a descrição do erro:
if( !ObjectCreate( chart_ID, name, OBJ_LABEL, sub_window, 0, 0 ) )
{
Print( __FUNCTION__, ": failed to create text label! Error code = ", GetLastError() );
return(false);
}
// which one this code gives me error no: 4200
depois:
if( !ObjectCreate( chart_ID, name, OBJ_LABEL, sub_window, 0, 0 ) )
{
if( errorcode !=0 ) printf( "Error %i: %s", errorcode, ErrorDescription( errorcode ) );
return(false);
}
// prevent error no: 4200 - but was not update spreadsheet values
Agora - e funciona perfeitamente:
if( !ObjectCreate( chart_ID, name, OBJ_LABEL, sub_window, 0, 0 ) )
{
if( errorcode !=0 ) printf( "Error %i: %s", errorcode, ErrorDescription( errorcode ) );
return(false); // removed this line
}
// now spreadsheet values updates, no any more error no: 4200