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

 
FAQ:


Entendo, mais perguntas então:

Você precisa controlar o tempo de abertura da vela com a função : iTime

Eu tentei controlar o tempo de abertura de um castiçal com esta função: iTime

O pedido se abre às 15h, mas a vela das 15h muitas vezes não é a primeira.

Antes disso, os candelabros anteriores já tinham estado em contato com 1.3000.

E quero que seja o primeiro castiçal que cruzou 1.3000 às 15 horas, sem nenhum outro castiçal.

Obrigado.

 
às vezes os novatos ficam perplexos... exatamente lógica, lógica humana simples. e programação é bastante linear. tente pensar em suas condições em uma única linha.
 
FAQ:
às vezes os novatos ficam perplexos... exatamente lógica, lógica humana simples. e programação é bastante linear. tente pensar em suas condições em uma linha.

Deixe-me dar-lhe minha idéia graficamente.

http://clip2net.com/s/5vbxUK

E como você colocaria essa idéia em uma única linha?

Obrigado.
 
a tempo, em ordem inversa. é assim que o programa irá analisá-lo. imagine que você está no ponto de decisão.
 
FAQ:
a tempo, em ordem inversa. É assim que o programa irá analisá-lo.

Desculpe - Não entendo bem sua intenção.

Agradecia que escrevesse como pode parecer em forma de código.

Obrigado.

 
solnce600:

Boa tarde a todos!

Eu ficaria muito grato a qualquer um que possa me dizer como codificar tal idéia.


O gráfico TF 5

No momento a oferta é 1.3150

Há um nível de preço - 1.3000.

O preço desce.

====================================

// Se o preço cruzar 1.3000.

// Se o preço cruzar primeiro 1.3000.

// Se o preço primeiro cruzar 1.3000 e a travessia estiver dentro da vela de15 horas (ou seja, 15:00,15:05.....15:55)


// Abrir um comércio.

===================================

Obrigado.



esta é apenas uma idéia sem implementação total

extern double crossLevel = 1.                       3;externo int hora = 15;int início(){    estático int cross = 0;    se (TimeHour(TimeCurrent()) == hora) {// vela corresponde à hora        se (isCrossPrice(crossLevel, Bid)) {// passagem de nível deixe Bid            cross+++;            se (cross == 1) {// primeira passagem de nível                sexml-ph// abra um pedido - implemente-se                    cross = 0;                }            }        }    }bool isCrossPrice(double level, double price){    bool res = false;    static double prev = 0;    if (prev > 0) {        if ((prev <= nível && preço > nível) ||| // cross level up            (prev >= nível && preço < nível)) { // cross level down            res = true;        }    }}    prev = preço;    return(res);}
 
keekkenen:

é apenas uma idéia sem implementação total


Muito obrigado.
 
solnce600:


Desculpe - Não entendo bem sua intenção.

Agradecia que escrevesse o que pode parecer em forma de código.

Obrigado.


Ainda é um longo caminho até o código, você tem que entender o princípio, o algoritmo.
 

Estou lutando há dois dias e não consigo entender. Preciso encontrar o preço mais baixo para as últimas n barras, mas não da barra atual, mas da barra recebida através da função. A função retorna o índice da barra em que a ordem foi aberta. Esta é a barra da qual precisamos olhar para trás ao longo da história para que as n barras encontrem o preço mais baixo. Abaixo está meu código, o que há de errado com ele?

 double low_price_n_bar()
 {
   
   double low_bar=100000, index_bar;
   
   for (int i=time_orders; i<=count_bar; i++) //time_orders индекс бара получаемого из функции, count_bars внешняя переменная количество баров для сдвига назад по истории
   {
    index_bar= ND(iLow(Symbol(),0,i));
    if (index_bar<low_bar)
    {
      low_bar=index_bar;     
    }
   
   }
   return(low_bar);
 }
 

Caros usuários do fórum, por favor, me ajudem muito.


if (TimeBar==Tempo[0]) return(0);


double MA1 = NormalizeDouble(iMA(NULL,TimeFrame_2,MA_Period_2,MA_Shift_2,MA_Method_2,Applied_Price_2,0),Digitos); // onde 0 é deslocado da barra atual pelo especificado número de períodos de volta
//double MA21 = NormalizeDouble(iMA(NULL,timeframe_2,period_2,ma_shift_2,ma_method_2,applied_price_2,2),Dígitos);
duplo MA2 = NormalizeDuplo(iMA(NULL,timeFrame_3,MA_Period_3,MA_Shift_3,MA_Método_3,Applied_Price_3,0),Dígitos);
//douplo MA31 = NormalizeDuplo(iMA(NULL,timeFrame_3,period_3,ma_shift_3,ma_método_3,aplicado_preço_3,2),Dígitos)
duplo MA3 = NormalizeDuplo(iMA(NULL,TimeFrame_4,MA_Period_4,MA_Shift_4,MA_Método_4,Applied_Price_4,0),Dígitos);

duplo OsMA = NormalizeDuplo(iOsMA(NULL,TimeFrame_5,FastEMA_5,SlowEMA_5,SignalSMA_5,Applied_Price_5,0),Dígitos)

if (MaxOrders>b && Low[0]>=MathMax(MA1,MA2)&& Low[0]>MA3 && Ask>MathMax(MA1,MA2)+DeltaOpen*Point && Pergunte>MA3 && MA2<MA3 && MA1<MA3 && OsMA>0 && Trade)
{
if (OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Blue) ===-1) TimeBar=0;
else TimeBar=Time[0];

}
if (MaxOrders>s && High[0]<=MathMin(MA1,MA2) && High[0]<MA3 && Bid<MathMin(MA1,MA2)-DeltaOpen*Point && Bid<MA3 && MA1>MA3 && MA2>MA3 && OsMA<0 && Trade)
{
if (OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Red) ==-1) TimeBar=0;
else TimeBar=Time[0];
}

retorno(0);


Com estas condições, o Expert Advisor abre um negócio, digamos, na SELL, fecha-o com lucro, e imediatamente abre outro negócio na SELL. Como prescrever em um EA, que quando o sinal é recebido, apenas um negócio deve ser aberto, ou seja, um sinal - um negócio.
Agradeço antecipadamente.

Razão: