[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 608

 
Pronto:) Obrigado
 
rigonich:

int iHighest( símbolo de corda, int cronograma, int tipo, int count=WHOLE_ARRAY, int start=0)
Retorna o índice do valor mais alto encontrado (offset em relação à barra atual).
Parâmetros:
Ovalor é devolvido:

int iHighest( símbolo de corda, int cronograma, int tipo, int count=WHOLE_ARRAY, int start=0)
Retorna o índice do valor mais alto encontrado (offset em relação à barra atual).
Parâmetros:
símbolo - Nome do símbolo, cujos dados serão pesquisados. NULL significa símbolo atual.
cronograma - Período. Pode ser um dos períodos do gráfico. 0 indica o período do gráfico atual.
tipo - O identificador das séries temporais. Pode ser qualquer um dos identificadores da série cronológica.
contar - Número de elementos das séries temporais (na direção da barra atual para o índice ascendente), entre os quais a busca deve ser realizada.
início - O índice (offset a partir da barra atual) da barra inicial a partir da qual se iniciará a busca do valor mais alto. Os valores negativos são ignorados e substituídos por valores zero.
A questão é como especificar que a busca deve ser feita antes da barra acima da qual o fractal apareceu e se o período é inferior a um minuto..... como deve ser feita?
 

Sinto muito,

isso seria ótimo. Eu olhei através do tutorial sobre variáveis globais, eu entendo que isto é o que eu preciso, mas eu não entendo as nuances. Onde declará-los, como escrever neles os valores corretos, etc.

Se existem, por exemplo, 5 EA penduradas no terminal em 5 pares diferentes e cada EA tem 4 variáveis que precisam ser escritas, isso significa que precisamos de 20 variáveis globais e elas devem ser nomeadas de alguma forma usando o comando Symbol() para que eu não tenha que escrever cada nome no EA.

Em suma, ainda não é para o meu cérebro((

 
i999i:



Memorize o tempo de abertura da barra onde o último fractal foi colocado, use-o para encontrar o número desta barra. se o período for inferior a um minuto........, como é isso? Se o período da tabela, menos de um minuto simplesmente não está lá.
 
i999i:

Obrigado pela resposta, mas o que eu queria dizer era como saber se o fractal atual foi quebrado ou não antes que o fractal seguinte apareça.

Se você procurar o preço de um fractal fresco (você pode rolar a roda do mouse nesta página), então você saberá se este fractal está quebrado. Meu perfil tem links para a expo da B.Williams ProfitUnity. Eu mesmo o escrevi. Agora eu negocio por sinais inversos, na direção do retorno do preço à sua média móvel.
 
xant:

Sinto muito,

isso seria ótimo. Eu olhei através do tutorial sobre variáveis globais, eu entendo que isto é o que eu preciso, mas eu não entendo as nuances. Onde declará-los, como escrever neles os valores corretos, etc.

Se existem, por exemplo, 5 EA penduradas no terminal em 5 pares diferentes e cada EA tem 4 variáveis que precisam ser escritas, isso significa que precisamos de 20 variáveis globais e elas devem ser nomeadas de alguma forma usando o comando Symbol() para que eu não tenha que escrever cada nome no EA.

Em suma, ainda não é para o meu cérebro((

Se eu não tenho cérebro suficiente para as Variáveis Globais do terminal, então sobre escrevê-las em um arquivo também...

double Var1, Var2, Var3, Var4;  // 4-ре переменных для сохранения (у Вас они свои !!!)
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
}
// в init()
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
//----
}

Mas, há uma primeira vez para tudo. fSave_MineGV() inside start() e fGet_MineGV() inside init().

Espero que você descubra, e escreva suas variáveis de salvamento em vez de Var1, etc.
 
xant:

Sinto muito,

isso seria ótimo. Eu olhei através do tutorial sobre variáveis globais, eu entendo que isto é o que eu preciso, mas eu não entendo as nuances. Onde declará-los, como escrever neles os valores necessários, etc.

Se existem, por exemplo, 5 EA penduradas no terminal em 5 pares diferentes e cada EA tem 4 variáveis que precisam ser escritas, isso significa que precisamos de 20 variáveis globais e elas devem ser nomeadas de alguma forma usando o comando Symbol() para que eu não tenha que escrever cada nome no EA.

Bem, ainda não é para o meu cérebro((

As variáveis que você precisa são realmente 20, você não quer escrevê-las em seu EA, faz dele um arquivo separado, há comandos de pré-processador para predefinir constantes, e para um iniciante é muito mais fácil trabalhar com variáveis globais do que com arquivos, mas é claro que você é o chefe.

perem = "peremEURUSD-1";
perem = "peremEURUSD-2";
duplo A;
//+------------------------------------------------------------------+
//| função de início do programa de script |
//+------------------------------------------------------------------+
int start()
{
GlobalVariableSet(peremEURUSD-1,2.5); //criar ou atribuir um novo valor
A=GlobalVariableGet(peremEURUSD-1); //seja lido valor
if(GlobalVariableGet(peremEURUSD-1)==....) //check this way
retorno(0);
}

//+------------------------------------------------------------------+

P.S. É melhor pré-definir as variáveis (para um par de moedas) uma vez que seja init.

 

rigonich,

Por que, na EA eu só quero, eu pensei ao contrário, que a gravação de arquivos é mais fácil.

TarasBY ,

Obrigado, está tudo claro, vou tentar, acho que vai funcionar.

 
por favor, informe...que diabos...em sua forma original (semPlaySound("alert.wav");) - trabalha. Mas se você adicionar a qualquer link além da atribuição da bandeira e alguma ação (tocar música, por exemplo) ... então as bandeiras estão imprimindo 0000 e a música está tocando a toda velocidade! por favor me diga onde o erro?
      if(Stoch_1>Stoch_2) flag1=1 ;  
      {Print (flag1,flag2,flag3,flag4);
      
      if(Stoch_1<Stoch_2 && flag1==1) flag2=1;
      {Print (flag1,flag2,flag3,flag4);
      
      if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) flag3=1; 
      {Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");
      
       if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 &&  flag3==1) flag4=1;
              {Print (flag1,flag2,flag3,flag4);
       if(Stoch_1>Stoch_2 && flag1==1 && flag2==1 &&  flag3==1 && flag4==1) 
       {OrderSend (Symbol( ), OP_SELL,  0.01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
        Print ("OUT");


 
flag1=0;
flag2=0;
flag3=0;
flag4=0;}

}}     
  }}}
=================================================================
.....
 
TarasBY:

Se você não tem os cérebros para as Variáveis Globais no terminal, então escrever para um arquivo faz...

Mas, há uma primeira vez para tudo. fSave_MineGV() inside start() e fGet_MineGV() inside init().

Espero que você descubra, e escreva suas variáveis de salvamento em vez de Var1, etc.

De maneira interessante, eu nem pensei que você pudesse usar variáveis globais desta maneira, é conveniente que você não tenha que mudar o código EA, basta adicionar mais...