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

 
torah01:

compre


int start()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid- 50*Point,Bid+50*Point);

retorno(0);
}

ajuda, por favor...

Alterado + para -. E verifique suas paradas e tomadas, neste momento você tem stop=70 + spread, take=+30 menos spread
 
TheXpert:
Por favor, não espalhe heresias em público. Vá nerd para outro lugar, há muito o que fazer...

Obrigado, eu só vim para consultá-lo.
 
NickXXX:

1. Bem, aqui o dobro só foi aplicado para adicionar minutos e horas. para que os pontos de referência possam ser designados como HH.MM (por exemplo, 16, 23).

2. Olhando para as últimas páginas, é claro que existe a data, mas não exatamente a mesma. Eles simplesmente saem no formato HH.MM na hora do último pedido.



Não é uma boa busca. Página 190, hora de postagem 18.09.2011 23:03
 
nemo811:

Olá.

Por favor, ajude-me a corrigir o código.

Ambas as linhas abaixo estão com falhas.

Obrigado de antemão.

O programa em si:


se(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == verdadeiro)

MODE_HISTÓRIA faria mais sentido

 
tara:

< 0,6, ou algo parecido. O restante da divisão é sempre inferior a um :)

Por que isso acontece?) O restante de 12 divididos por 10 = 2.
NickXXX:

E se houver muitas variáveis como essa?

É uma pena, ou vai funcionar?

E outra pequena pergunta, se eu disser que estabeleço um intervalo (por exemplo, 16.00-16.03) para uma condição a ser executada. Como fazê-la executar apenas uma vez, apesar da chegada de novos carrapatos???

Isso funciona. E para fazer isso apenas uma vez, insira uma variável de serviço adicional, algo como isto

bool flag=true;

int start()
{
  if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag=false;
  }
}
 
Figar0:

Por que isso acontece?) O restante de 12 divididos por 10 = 2.

Isto vai funcionar. E para fazer isso uma vez, insira uma variável de serviço adicional, como esta:


Sim, é uma pequena falha :)
 
tara:


se(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == verdadeiro)

A MODE_HISTÓRIA faria mais sentido.

Eu não poderia estar mais de acordo. À noite, meu cérebro abranda.

Entretanto, mesmo com esta correção, notei que a falha acima (confusão entre variável mágica e número) no script ocorre quando você redeclare no MAGIC; variável (esta mesma mágica está bloqueada por alguma razão). Se você remover o MAGIC int; (MAGIC int externo = 1; restos), tudo funciona como um relógio.

Uma pergunta lógica: por que eu preciso dela? Você pode remover no MAGIC; e viver sua vida em paz. MAS.

Preciso colocar este código em uma biblioteca. Mas se eu não definir no MAGIC, haverá um erro.

Isso é o que eu acho que deveria fazer. Tudo isso vai funcionar no meu consultor especializado? Por que isto é feito no MAGIC; ?

O roteiro abaixo:

extern int MAGIC = 1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int OrdTicket=OrdTicket_b();
  Alert (OrdTicket);

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int i;
  for(i=0;i<OrdersTotal();i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 
Em qual pasta as configurações do servidor de e-mail são salvas no terminal mt-4?
 

Camaradas, ajudem, por favor... Escrevi um código simples, mas na compilação ele diz que os parênteses estão fora de equilíbrio, mas já os contei 300 vezes - tudo está no lugar

A idéia é muito simples - se MACD esteve acima (ou abaixo) 0 por 7 minutos ou menos, a posição é aberta

//+------------------------------------------------------------------+
//| MACD ^^^.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#direitos autorais "Copyright © 2011, MetaQuotes Software Corp.
#link da propriedade "http://www.metaquotes.net"

externo int TP = 100;
TS externo int = 100;
lotes duplos externos = 0,1;
int slip = 3;
int Magic = 1;

//+------------------------------------------------------------------+
//| função de inicialização especializada |
//+------------------------------------------------------------------+
int init()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
//----

total int, bilhete; //declarado total e bilhete
int signal = sinal_MACD(); // sinal_MACD passa valor para sinal
AnalyzeSignal(sinal); //analisar sinal
int MACD[8] = {0,1,2,3,4,5,6,7}; //criar uma matriz unidimensional MACD
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);

total = OrdensTotal(); //total conta as ordens

int signal_MACD() //calcule o sinal MACD
{
se(total<1) // se os pedidos forem inferiores a 1, considere as condições
{
if(MACD[0]<0)
{
if(MACD[1]>0)
{
if(MACD[2]>0)
{
{ if(MACD[3]>0)
{
{ if(MACD[4]>0)
{
{ if(MACD[5]>0)
{
{ if(MACD[6]>0)
{
{ if(MACD[7]<0)
{
retorno(-100);
}
}
}
}
}
}
}
}
if(MACD[0]>0)
{
if(MACD[1]<0)
{
if(MACD[2]<0)
{
{ if(MACD[3]<0)
{
{ if(MACD[4]<0)
{
{ if(MACD[5]<0)
{
{ if(MACD[6]<0)
{
if(MACD[7]>0)
{
retorno(100);
}
}
}
}
}
}
}
}
}
}

void AnalyzeSignal(sinal int)
{
if(sinal == 100)
{
bilhete = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green);
if(bilhete>0)
{
OrderSelect(ticket,SELECT_BY_TICKET;)
Imprimir("aberto para compra a preço:" OrderOpenPrice());
}
senão
{
Imprimir("aberto falhou devido a:" GetLastError()));
retorno(0);
}
}
if(sinal == -100)
{
bilhete = OrderSend(Symbol(),OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green);
if(bilhete>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("aberto para venda a preço:" OrderOpenPrice());
}
senão
{
Imprimir("aberto falhou devido a:" GetLastError()));
retorno(0);
}
}
}

//----
retorno(0);
}
//+------------------------------------------------------------------+

 
p.s. como você desenha um roteiro tão bonito quanto o seu?
Razão: