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

 
forexnew:

Como retratar:

/

em cordel?

Por exemplo:

string path=TerminalPath()+"/logs/"+tekTime+".log";

dá um erro, e se você remover a barra "/"

string path=TerminalPath()+"logs "+tekTime+".log";

- sem erros.




Leia aqui e aqui.

 
ZZZEROXXX:

talvez veja o que mais IsTradeAllowed() retorna?

Por favor, ajude. Estou tentando construir uma tendência por dois pontos, ligados às barras por N barras à frente a partir do último ponto. Isto é, entrada - preço de tempo do primeiro e segundo pontos, e N expresso em número de barras à frente (caixa de seleção feixe = falso). Se o segundo ponto, suponha, estiver na barra 1 a partir da barra 0 atual, e eu tiver que tirar dela 10 barras à frente, como posso calcular o tempo e o preço da barra a partir do futuro?

Este também funciona, se por acaso você acidentalmente acertar uma linha de comércio durante a compilação de sua EA. Estou procurando uma maneira de exibir na EA mensagens de comentários dos logs sobre pedidos . Parece que praticamente não há muitas pessoas que tenham solicitado tal tarefa.
 
PapaYozh:


Leia aqui e aqui.

Obrigado!
 

Os estimados gurus não podem ajudar?

pvm117 20.10.2011 18:26

Boa tarde!

Como primeira experiência, decidi implementar o seguinte algoritmo: posso esperar um forte movimento de mercado para cima ou para baixo em algum tempo depois que as linhas Bollinger convergirem em um corredor estreito. Em meu consultor especializado, analiso o estado das linhas Bollinger e quando elas estão chegando muito perto(pips Delta), colocamos uma ordem de venda pendente na direção inferior (no stepOpen pips abaixo da linha inferior), esperando que o mercado subitamente vá nessa direção. Se o mercado seguisse em outra direção, simplesmente apagávamos esta ordem.

extern double Delta=800.0;              // Ширина канала, которую мы считаем достаточно узкой чтобы ожидать скоро серьезного движения в одну из сторон
extern double StepOpen=150.0;           // Отступ от линии Боллинджера  для открытия отложенного ордера
extern double TP=350.0;                 // Take Profit
extern double SL=400.0;                 // Stop Loss

int start()
  {
   double T1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);  // верхняя линия Боллинджера
   double T2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); // нижняя линия Боллинджера
   if ((Ask>T1+StepOpen*Point)&&OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) OrderDelete(0); // если рынок пошел вверх – то удаляем отложенный ордер
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) return(0); // если есть ранее открытый ордер – прекращаем выполнение текущей итерации советника
   if (T1-T2<Delta*Point) {               // если линии Боллинджера сблизились ближе чем на Delta пунктов начинаем операцию открытия ордера
      double PriceOpen=NormalizeDouble(T2-StepOpen*Point,5);  // вычисляем цену открытия
      double StopLoss=NormalizeDouble(T2-StepOpen*Point+SL*Point,5); // вычисляем StopLoss
      double TakeProfit=NormalizeDouble(T2-StepOpen*Point-TP*Point,5); // вычисляем TakeProfit
      OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу
            }
   return(0);
  }
O algoritmo funciona instável, às vezes abre duas ordens em um curto período de tempo, constantemente dá erros OrderSend Error 130 e OrderSend Error 138, e remover ordens abertas em caso de movimentos do mercado na outra direção não funciona de forma alguma.

Por favor, avise-nos! Obrigado!

 
pvm117:

Os estimados gurus não podem ajudar?

pvm117 20.10.2011 18:26

Boa tarde!

Como primeira experiência, decidi implementar o seguinte algoritmo: posso esperar um forte movimento de mercado para cima ou para baixo em algum tempo depois que as linhas Bollinger convergirem em um corredor estreito. Em meu consultor especializado, analiso o estado das linhas Bollinger e quando elas estão chegando muito perto(pips Delta) , colocamos uma ordem de venda pendente na direção inferior (no stepOpen pips abaixo da linha inferior), esperando que o mercado vá de repente nessa direção. Se o mercado seguisse em outra direção, simplesmente apagávamos esta ordem.

O algoritmo funciona instável, às vezes abre duas ordens em intervalos curtos, dá constantemente erros OrderSend Error 130 e OrderSend Error 138, e remove ordens abertas caso o mercado se mova na outra direção não funcione de forma alguma.

Por favor, avise-nos! Obrigado!

OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу

Esta não é uma ordem pendente, mas uma ordem de mercado .

de acordo com isso, seu preço de abertura deve ser diferente e não pode ser apagado (OrderDelete), mas apenas fechado

 

Saudações a todos os conhecedores e leitores experientes deste tópico! E qualquer um que possa me ajudar=)

Qual é a maneira mais fácil e "correta" de atingir a periodicidade? Isto é, para simplificar, quero executar automaticamente alguma ação a cada 15 minutos.

No meu caso, é salvar um arquivo em disco com algumas estatísticas. Agora eu tenho um roteiro que faz o que eu quero, e são literalmente 20 linhas de código. Então, como faço para que essas 20 linhas se repitam em intervalos? Como eu entendi, não há temporizadores na MQL. Preciso usar um EA que fará algum tipo de verificação a cada tique?

Espero por sua ajuda e dicas)

 
Olá, você pode me dizer se há alguma outra maneira de definir o prazo de uma EA com várias moedas que não seja no indicador via M_30 H_1, D_1 e assim por diante?
 
skyjet:
Olá, você pode me dizer se há alguma outra maneira de definir o prazo de uma EA com várias moedas que não seja no indicador via M_30 H_1, D_1 e assim por diante?

Qual é o problema?
 

Olá.

Aqui está uma pergunta: aconselhar como usar a linha amarela como uma previsão de momento e a linha branca como uma previsão de OsM em uma longa tendência de subida da estrutura superior?

É difícil determinar a amplitude entre os picos das ondas, por isso aconselha-se onde cavar a seguir ;)


 
Sancho77:

Selecione a primeira, fora das posições abertas.

Você precisa de tudo isso para verificar a distância em pips entre a primeira posição aberta e a última posição aberta entre as posições abertas.

Apenas uma reescrita rápida, talvez ajude? Não verificou...

double PriceOpenFirstPos(string sy="", int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   double   r=0;
   int      i, k=OrdersTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
               if (op<0 || OrderType()==op) {
                  if (mn<0 || OrderMagicNumber()==mn) {
                     if (OrderOpenTime()<t) {
                        t=OrderOpenTime();
                        r=OrderOpenPrice();
                        }
                     }
                  }
               }
            }
         }
      }
   return(r);
}

Tente desta forma...