[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 422

 
Você pode me dizer - o para dentro do(s) for(s) funciona(m)?
 
elmucon:
Você pode me dizer - o para dentro do(s) for(s) funciona(m)?
Funciona. Todos os outros operadores até mesmo trabalham.
 
Zhunko:
Funciona. Até mesmo todos os outros operadores trabalham.

Obrigado!
 
Saudações, favor fornecer um fragmento de código para um Expert Advisor que usa um sinal indicador para entrada, que cria setas ao invés de uma linha (ou seja, o estilo indicador é definido como SetIndexStyle(0, DRAW_ARROW, EMPTY, 3)). Eu quero que a seta para baixo venda, e a seta para cima compre. Eu falhei usando métodos padrão por alguma razão(
 

Você pode me dizer como mudar o período rsi (o padrão é 14)?

Obrigado


//+------------------------------------------------------------------+
//|                                                  RSI_to_File.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/"

#property show_inputs
string SymbolsArray[11]={"","USDCHF","GBPUSD","EURUSD","USDJPY","CHFJPY","EURGBP","EURCHF","EURJPY","GBPJPY","GBPCHF"};

//+------------------------------------------------------------------+
//| string SymbolByNumber                                   |
//+------------------------------------------------------------------+
string GetSymbolString(int Number)
  {
//----
   string res="";
   res=SymbolsArray[Number];   
//----
   return(res);
  }

//+------------------------------------------------------------------+
//| возвращает период                                                |
//+------------------------------------------------------------------+
int PeriodNumber(int number)
   {
   int per_min;
   switch (number)
      {
     
      case 5: per_min=PERIOD_H4;break;
      default: per_min=PERIOD_D1;break;
      }
   return(per_min);   
   }

//+------------------------------------------------------------------+
//|   выводит в файл котировки + значения индикатора                 |
//+------------------------------------------------------------------+
void RSI_output(string SymbolName,int PeriodMinutes)
   {
   int size=iBars(SymbolName,PeriodMinutes);
//----
   if (size==0) return;
   int handle=FileOpen(SymbolName+PeriodMinutes+"_RSI.csv",FILE_WRITE|FILE_CSV);
   if (handle<0) return;
   FileWrite(handle,"Time;RSI");
   for (int i=size-1;i>=0;i--)
      {
      FileWrite(handle,TimeToStr(iTime(SymbolName,PeriodMinutes,i))
         ,iCustom(SymbolName,PeriodMinutes,"RSI",0,i));
      }
   FileClose(handle);      
//----
   return;
   }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  int SymbolCounter,PeriodCounter; 
//----
   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
      {
      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
         {
         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");
         RSI_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

 

Rapazes, vocês podem me indicar a direção do registro para que eu possa usar OPLI online e obter meu nome de usuário e senha?

 
Veja, eu consegui o tempo pela função
ObjectGet("qwerty",OBJPROP_TIME2);
Eu recebo 1323452400. Como entendo que o tempo é em segundos, então se eu subtrair 600 desse tempo, o novo local será 10 barras de volta no gráfico de 5 minutos, mas na verdade a nova coordenada moveu apenas 1 barra, por que isso está acontecendo? E para que o turno seja de 10 barras você tem que subtrair cerca de 3000, onde está a lógica aqui?
 

Você pode me dizer por que não consigo imprimir variáveis, nem mesmo 0 aparece.

O controlador do lote do respeitado voix_kas. Ligeiramente retrabalhada por mim.

double GetLot(int FastPeriodMA,int SlowPeriodMA) {
int i;
static double Lot = 0;
static double PrevBalance = 0;
static double BalanceOld[0];
static double BalanceNew[0];
if (NormalizeDouble(PrevBalance - AccountBalance(), 2) != 0) {
ArrayResize(BalanceNew, ArraySize(BalanceOld) + 1);
for (i = 0; i <= ArraySize(BalanceOld) - 1; i++)
BalanceNew[i] = BalanceOld[i];
BalanceNew[ArraySize(BalanceOld)] = AccountBalance();
ArrayResize(BalanceOld, ArraySize(BalanceOld) + 1);
ArrayCopy(BalanceOld, BalanceNew);
PrevBalance = AccountBalance();

if (ArraySize(BalanceNew) > SlowPeriodMA) {
double FastMA = 0, SlowMA = 0;
for (i = ArraySize(BalanceNew) - FastPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
FastMA += BalanceNew[i];
FastMA /= FastPeriodMA;
for (i = ArraySize(BalanceNew) - SlowPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
SlowMA += BalanceNew[i];
SlowMA /= SlowPeriodMA;
if (FastMA > SlowMA){ Lot = 5;Print(" FastMA ",FastMA,"; SlowMA= ",SlowMA); } 
else Lot = 0.01;
}
}
if (Lot < MarketInfo(Symbol(), MODE_MINLOT)) Lot = MarketInfo(Symbol(), MODE_MINLOT);
else if (Lot > MarketInfo(Symbol(), MODE_MAXLOT)) Lot = MarketInfo(Symbol(), MODE_MAXLOT);
return (Lot);
}
 
001:

Você pode me dizer por que não consigo imprimir variáveis, nem mesmo 0 aparece.

O controlador do lote do respeitado voix_kas. Ligeiramente redesenhado por mim.


E a cada tique o tamanho das arrays aumenta?

Talvez fosse mais fácil criar um indicador de equilíbrio. E em Consultores Especialistas se dirigiria a ele.

 
Vinin:


E a cada vez que o tamanho das arrays aumenta?

E talvez seja mais fácil fazer um indicador de equilíbrio. E no Expert Advisor você já se referiria a ele.


Você pode, mas o Expert Advisor trabalha mais lentamente neste caso. E, com a saída na tela também se revela um disparate, ela só se desenha quando o negócio é fechado, e como fazê-la existir como uma linha contínua de equilíbrio, eu não entendo, alguém pode dizer?
Razão: