[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 704
Sergey, não entendo totalmente o que exatamente você mudou, porque no endereço que você forneceu você precisa se registrar para ver o código fonte da CCIFilter. Encontrei apenas um erro, o iWPR não tem parâmetro applied_price, portanto está correto:
Em princípio, não há diferença. Tente minha função, é bastante simples, passe o "medj", e o arrasto desejado como parâmetros. Esta função deve ser chamada no início, em qualquer lugar, desde que comece com cada carrapato.
Obviamente, as ordens devem ter diferentes controles deslizantes.
Roger: Eu entendo, você define uma variável ro no início da função, mas você não a atribui em nenhum lugar, ou seja, é 0.
ToLik_SRGV, obrigado, ainda não funciona corretamente. Isso significa que eu tenho o lugar errado para esconder o problema. Obrigado de qualquer forma, vou descobrir por conta própria.Roger,
string Global="Global";
int param;
int start()
{
int i= GlobalVariableSet(Global,param);
Print (i); // Здесь он мне и выводит всякую лабуду вида : 1279217736return(0);
}
O que eu estou fazendo de errado? Eu deveria receber 1 ou 2 valores de parâmetro, mas recebi ..... E por que tenho que escrever o nome e a variável novamente no início do código EA? Eles parecem existir como globais, mas a compilação não funciona sem eles.
ToLik_SRGV: Para ler o valor das variáveis globais, precisamos de outra função :)))
Tão claro, olhando para o livro e não vendo, funciona, obrigado! Seguindo em frente) com perguntas. Tudo sobre as mesmas variáveis globais. Eu adicionei a seguinte condição ao indicador:
string EUR="EURUSD"; //имя глобальной переменнойstring GBP="GBPUSD"; //имя глобальной переменнойstring valuta="";
int param; // параметр глобальной переменнойint init()
{
GlobalVariablesDeleteAll(NULL);
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+int start()
{ string symb = Symbol(); //Здесь узнаю на какой валюте стоит индикатор
if (symb==EUR) {valuta=EUR;} // здесь сравнивая ,в переменную занощу имя глобальной переменной
if (symb==GBP) {valuta=GBP;} // которую следует использовать
//привожу простой примерdouble bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0);
double bar2= iOpen(Symbol(),PERIOD_M5,0);
if (bar1>bar2){ param = 1; GlobalVariableSet(valuta,param); } // а здесь присваиваю параметр глобальной переменной
if (bar1<bar2){ param = 2; GlobalVariableSet(valuta,param); }
return(0);
}
Quero definir a qual variável global deve ser atribuído um valor, dependendo da moeda em que o indicador se baseia.
Entendo que na variável global GlobalVariableSet(valuta,param), o nome (valuta) deve conter o valor atribuído a ela acima
chamar novamente a variável global no código do Expert Advisor
string valuta="valuta";
int i= GlobalVariableGet(valuta); // mas eu não recebo o valor, .... Ou seja, eu recebo 0. Será impossível mudar o nome da variável global desta forma?
Acho que já descobri - acontece que não posso chamar uma variável global com este nome, mas se eu registrar o nome da string GlobalVariableGet("EURUSD") ele funciona).
Também Odisseu, no exemplo anterior você o tinha assim:
E agora é assim:
Você não apagou nada, ou eu estou imaginando?aqui está o código final
Sergey, não entendo totalmente o que exatamente você mudou, porque no endereço que você forneceu você precisa se registrar para ver o código fonte da CCI Filter.
Encontrei apenas um erro, o iWPR não tem parâmetro applied_price, portanto está correto:
Tudo, obrigado, agora o rrrrrr funciona!!!
Em princípio, não há diferença.
Tente minha função, é bastante simples, passe o "medj", e o arrasto desejado como parâmetros.
Esta função deve ser chamada no início, em qualquer lugar, desde que comece com cada carrapato.
Obviamente, as ordens devem ter diferentes controles deslizantes.
Roger:
Eu entendo, você define uma variável ro no início da função, mas você não a atribui em nenhum lugar, ou seja, é 0.
Como de costume aqui )))) Como de costume para as pessoas boas ))))
Qual é o problema, eu não consigo descobrir. Problemas com variáveis globais. Eu o faço em código indicador:
Então eu tento obter o valor de uma variável global de um Expert Advisor com este código
O que eu estou fazendo de errado? Eu deveria receber 1 ou 2 valores de parâmetro, mas recebi ..... E por que tenho que escrever o nome e a variável novamente no início do código EA? Eles parecem existir como globais, mas a compilação não funciona sem eles.Posso abrir duas posições BUY/SELL simultaneamente?
Eu tentei - escrevi um código simples que abre as posições de COMPRA e VENDA simultaneamente, conectado ao EUR/USD em tempo real, eles parecem abrir.
Mas isso foi uma demonstração de conta e um testador de estratégia, e em tempo real, será que a minha corretora se importará?
Eu nunca tinha experimentado antes, não acho que tenha começado este tipo de experiência.
int i= GlobalVariableGet(Global);Posso abrir duas posições BUY/SELL simultaneamente?
Eu tentei - escrevi um código simples que abre as posições de COMPRA e VENDA simultaneamente, conectado ao EUR/USD em tempo real, eles parecem abrir.
Mas isso foi uma demonstração de conta e um testador de estratégia, e em tempo real, será que a minha corretora se importará?
Eu nunca tinha experimentado antes, não acho que tenha começado este tipo de experiência.
Em geral - pergunte à equipe de suporte de seu CD
Para ler o valor das variáveis globais, precisamos de outra função :)))
Tão claro, olhando para o livro e não vendo, funciona, obrigado! Seguindo em frente) com perguntas. Tudo sobre as mesmas variáveis globais. Eu adicionei a seguinte condição ao indicador:
Quero definir a qual variável global deve ser atribuído um valor, dependendo da moeda em que o indicador se baseia.
Entendo que na variável global GlobalVariableSet(valuta,param), o nome (valuta) deve conter o valor atribuído a ela acima
chamar novamente a variável global no código do Expert Advisor
string valuta="valuta";
int i= GlobalVariableGet(valuta); // mas eu não recebo o valor, .... Ou seja, eu recebo 0. Será impossível mudar o nome da variável global desta forma?
Acho que já descobri - acontece que não posso chamar uma variável global com este nome, mas se eu registrar o nome da string GlobalVariableGet("EURUSD") ele funciona).
Primeiramente, a partir da ajuda
Retorna o valor da variável global existente ou 0 no caso de um erro. Ligue para GetLastError() para obter informações de erro.
Você consegue ver o conteúdo do GV, mas não consegue recuperá-lo?