[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 207

 
DemanRap: Então o raio que vai de um ponto ao outro só continua para o lado direito do gráfico, mas como posso fazê-lo continuar para o lado esquerdo?
Você não pode desenhar um raio para a esquerda, ou você quer uma linha reta em vez de um raio?
 
Quero que meu robô consiga rastrear onde este raio estaria nos dados históricos. Por exemplo, quero verificar quão próximo estaria de outros fractais, não apenas dos 2 fractais sobre os quais o construí originalmente.
 
Sim. Por isso, meu objetivo é conseguir uma linha reta.
 
DemanRap: Sim. Por isso, meu objetivo é conseguir uma linha reta.

datetime time1 = …;
double price1 = …;

datetime time2 = …;
double price2 = …;

datetime timeDifference =  time2 – time1;  // добавить
double priceDifference = price2 – price1;  // добавить

ObjectCreate("trend_line1", OBJ_TREND, 0, time1, price1, time2, price2);
ObjectCreate("trend_line2", OBJ_TREND, 0, time1, price1, time1 - timeDifference, price1 - priceDifference); // добавить

Para obter uma linha reta, tente adicionar as linhas destacadas

 
Muito obrigado, mas acabou sendo muito mais simples. eu apenas desenhei outro raio e troquei tempo1, preço1 e tempo2 preço2 nele. mas levei um dia inteiro para descobrir))))
 
Aleksander:

o que tem a ver com eles? - global em nível de terminal?

armazenam algum tempo no arquivo variável :-) data de acesso, nome e valor do tipo duplo


A questão sobre as variáveis GV é a seguinte... No livro de S.K. sobre MQL4, no capítulo "GlobalVariables" na seção "Properties of GV-Variables" (Propriedades das Variáveis GV) está escrito: "Uma variável GV só pode ser do tipo duplo". Abaixo, na seção "Função GlobalVariableDel()", há um exemplo de especialista globalvar.mq4 com o seguinte conteúdo:

//--------------------------------------------------------------------
// globalvar.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int    Experts;                                 // Колич. экспертов
double Depo=10000.0,                            // Заданный депозит
       Persent=30,                              // Заданный процент     
       Money;                                   // Искомые средства
string Quantity="GV_Quantity";                  // Имя GV-переменной
//--------------------------------------------------------------------
int init()                                      // Спец. функция init
  {
   Experts=GlobalVariableGet(Quantity);         // Получим тек. знач.
   Experts=Experts+1;                           // Колич. экспертов
   GlobalVariableSet(Quantity, Experts);        // Новое значение
   Money=Depo*Persent/100/Experts;              // Средства для эксп.
   Alert("Для эксперта в окне ", Symbol()," выделено ",Money);
   return;                                      // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   int New_Experts= GlobalVariableGet(Quantity);// Новое колич. эксп.
   if (Experts!=New_Experts)                    // Если изменилось
     {
      Experts=New_Experts;                      // Теперь текущ. такое
      Money=Depo*Persent/100/Experts;           // Новое знач. средств 
      Alert("Новое значение для эксперта ",Symbol(),": ",Money);
     }
   /*
   ...
   Здесь долен быть указан основной код эксперта,
   в котором используется значение переменной Money
   ...
   */
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
int deinit()                                    // Спец. ф-ия deinit
  {
   if (Experts ==1)                             // Если эксперт один..
      GlobalVariableDel(Quantity);              //..удаляем GV-перемен
   else                                         // А иначе..
      GlobalVariableSet(Quantity, Experts-1);   //..уменьшаем на 1
   Alert("Эксперт выгружен из окна ",Symbol()); // Сообщ. о выгрузке
   return;                                      // Выход из deinit()
  }
//--------------------------------------------------------------------

Pergunta: por que neste exemplo as variáveis GV Expert e New_Expert são do tipo int. embora, como dito anteriormente, estas variáveis devam ser do tipo duplo?

 

Boa tarde, você pode me dizer o que pode estar errado com a EA?

//+------------------------------------------------------------------+
//|                                                           iB.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

int MagicNumber = 1981;
//-----------------------------------------
extern double  Percent        = 0.8;
extern double  Lots           = 0.1;

bool Accept()
  {
   bool TradeOpen;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) TradeOpen=false;
            else TradeOpen=True;
         if (OrderType() == OP_BUY)
            {if (OrderStopLoss() < (Low[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(Low[1] * Point),0,0,Green);}
         if (OrderType() == OP_SELL) 
            {if (OrderStopLoss() > (High[1] * Point)) 
                  OrderModify(OrderTicket(),OrderOpenPrice(),(High[1] * Point),0,0,Red);}
        }
     }

   return(TradeOpen);
  }
//-------------------------------------------------------------------+
int start()
  {
//----
   if (Accept())
   {
      if(High[1]<High[2] && Low[1]>Low[2])   
         if ((High[1]-Low[1])/(High[2]-Low[2])<Percent)
       {
         OrderSend(Symbol(), OP_BUYSTOP, Lots, High[1], 3, Low[2], 0, "iB", MagicNumber, 0, Green);
         OrderSend(Symbol(), OP_SELLSTOP, Lots, Low[1], 3, High[2], 0, "iB", MagicNumber, 0, Red);
       }
   }
   return(0);
  }
//+------------------------------------------------------------------+
Compila sem nenhum problema, sem erros, mas não comercializa. Tentei comentar diferentes blocos de código, mas não encontrei o culpado. Não notei nenhum problema de lógica.
 
Esqueci minha senha na minha antiga conta demo. Onde posso encontrá-lo?
 
MikeM:
Esqueci minha senha na minha antiga conta demo. Onde posso encontrá-lo?


Você não o tem em nenhum lugar, se você mesmo não se encarregou de salvá-lo - verifiquei com a equipe de suporte de uma das corretoras.

Você precisa verificar seu e-mail - quando você abre uma conta, eles lhe enviam todos os seus parâmetros, incluindo senhas...

 
7777877:

Boa tarde. Eu tentei "sentir a diferença" e isto é o que saiu dela... Ou seja, podemos (com algum estiramento) definir REALMENTE uma variável GV da seguinte forma. Uma variável GV é uma "caixa" na qual você pode armazenar uma variável de qualquer tipo (exceto string, porque uma variável GV é de tipo duplo apenas, enquanto a regra de digitação não permite a redução do tipo, ou seja, você não pode fazer uma string um duplo). E esta variável, que vamos inserir em uma variável GV, "tomará a forma desta caixa" (ou seja, será fundida do tipo fonte para o tipo duplo)... De qualquer forma, é assim?

Agradecemos antecipadamente a resposta.
Você acertou. Além disso, quando retiramos um valor da caixa, ele é do tipo duplo, mas se dermos um comando para escrever o resultado em uma variável do tipo int, o compilador tomará automaticamente todas as medidas necessárias para colocar o valor na nova caixa.