[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 191

 
solnce600:

Muito obrigado por sua ajuda.

Mas abre negócios no testador a cada minuto de vela. Informações. neste link http://clip2net.com/s/2T98Y

Quero que abra um pedido em uma vela de 5 minutos, mas não em todas as velas.

E somente se o castiçal atual de cinco minutos for > ou = 30 pontos (desde o preço de abertura até seu máximo)

Isto é, abrir uma ordem de mercado ao trigésimo pip a partir do preço de abertura do período de cinco minutos zero=corrente.

Se o castiçal atual de cinco minutos estiver a menos de 30 pips do preço aberto até seu máximo, então não abra uma ordem de mercado.

Basta deixar o EA no gráfico de cinco minutos, será como você escreveu.

Ou substitua em qualquer lugar do código Open[0] pelo iOpen(Symbol (), PERIOD_M5, 0), então ele funcionará a partir de qualquer gráfico.

A segunda condição em seu código é que o preço de fechamento do período atual de cinco minutos >= preço de abertura do pedido.

Não, Close[0] é o preço de fechamento atual da barra 0, ou seja, apenas o preço atual. Você poderia ter acabado de escrever Bid, o resultado é o mesmo.


Ou seja, não haverá muitos pedidos, calculei em Excel, desde 1999 - um pouco mais de 3000 pedidos por euro em ambas as direções.

Vamos para os próximos cinco minutos e se for, ou seja, os atuais cinco minutos > ou = 30 pips, abrimos no trigésimo pips, se for menos, vamos para os próximos cinco minutos ... e assim por diante até o final do gráfico.

Mas a coisa é, por uma estimativa aproximada, a maioria dos planos de cinco minutos que > ou = 30 pips são muito mais propensos a voar além de 15 pips do que a ser fechado por uma parada de 30 pips.

Sua condição é "sem ordens em aberto".

Mas em meu sistema, dois períodos de cinco minutos com os parâmetros descritos acima podem ser formados em uma fila e se a ordem do período anterior de cinco minutos não for fechada, então nenhuma ordem será aberta no segundo período de cinco minutos.

Preciso que uma ordem seja aberta a cada cinco minutos com os parâmetros descritos acima, independentemente da existência ou não de ordens no comércio.

Muito bem, então vamos mudar a condição. Assim sai:

int start()

{

 double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;        
 double SL=NormalizeDouble (Price-300*Point, Digits);         
 double TP=NormalizeDouble (Price+150*Point, Digits);    
 
 int last_order_bar = 0;
 int ot = OrdersTotal();

 if (ot>0) //если есть ордера в рынке
 {
   if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордер
      if (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
         last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
 }
 
 if (OrdesTotal()==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем баре
    if (Bid>=Price)                       //если текущая цена доползла до цены открытия
       int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );

}
 
beginner:
Estou interessado no conselheiro, nos objetos - eu mesmo desenho a vela?

Você pode compreender o princípio:

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Рисуем на чарте бары                                                       |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fDraw_Bars (string fs_Pref,          // Префикс имени объекта
                 int fi_NUMPeriod,        // Индекс (номер) периода, на котором будет виден объект
                 bool fb_IsNullBar,       // флаг рисования 0-го бара
                 double ar_Price[][][4])  // Массив с ценами
{
    int      li_widht = 6;
    string   ls_Name;
    color    lc_color = Aqua;
    datetime ldt_Time;
//----
    //---- Определяем время текущей свечи (её место в истории)
    if (fb_IsNullBar) {ldt_Time = Time[0];}
    else {ldt_Time = Time[1];}
    //---- Рисуем свечу
    ls_Name = StringConcatenate (fs_Pref, "_Candle_", TimeToStr (ldt_Time));
    if (ar_Price[0][1][3] < ar_Price[0][1][0]) {lc_color = Red;} else {if (ar_Price[0][1][3] == ar_Price[0][1][0]) {li_widht = 8;} else {lc_color = Blue;}}
    fDraw_OBJ (ls_Name, OBJ_TREND, ldt_Time, ar_Price[0][1][3], ar_Price[0][1][0], lc_color, li_widht, fi_NUMPeriod, "", 0, 10, "Arial", 0);
    //---- Рисуем тени свечи
    ls_Name = StringConcatenate (fs_Pref, "_Shadow_", TimeToStr (ldt_Time));
    if (ar_Price[0][1][3] <= ar_Price[0][1][0]) {lc_color = Gold;} else {lc_color = DeepSkyBlue;}
    fDraw_OBJ (ls_Name, OBJ_TREND, ldt_Time, ar_Price[0][1][1], ar_Price[0][1][2], lc_color, 1, fi_NUMPeriod, "", 0, 10, "Arial", 0);
//---- 
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
 
Diubakin:
Você já examinou o teste EA para a função no testador? Encerra exatamente o prejuízo máximo com lucro máximo, não importa quantos pedidos existam - dois ou vinte.
Por enquanto, a questão sobre a função é deixada em aberto, pois colarei mais algumas funções em seu teste EA amanhã para fazer uma experiência pura. Observei em modo visual e quase todos os fechamentos duplos são os últimos, o anterior fecha no SL e TP, ou seja, não tenho nada por onde escolher. Eu removi as Paradas e Takes a fim de ter algo para escolher. Amanhã vou mostrar ao seu consultor especializado todas as funções e comentários adicionais! Você poderá ver por si mesmo como a função funciona. Eu realmente quero que isso mostre que eu estava errado! Se eu estiver certo, vou tentar fazer o meu melhor! Vejo vocês amanhã!
 
alsu:

Basta deixar sua EA em um gráfico de cinco minutos, será como você escreveu.

Ou substitua Open[0] por iOpen(Symbol (), PERIOD_M5, 0) em qualquer lugar do código, então ele funcionará a partir de qualquer gráfico.

Não, Close[0] é o preço de fechamento atual da barra 0, ou seja, apenas o preço atual. Você poderia simplesmente escrever Bid, o resultado é o mesmo.


OK, então vamos mudar a condição. Sai:




Muito obrigado por sua ajuda. Tudo bem. Mas......

1. Em cerca de cinco minutos, mais de 1 pedido é aberto.

2. Algumas ordens são fechadas em ordens stop cujo preço é diferente daquele prescrito no código.

Marquei os dados do pedido no arquivo anexo.

 
alsu:

Basta jogar o Expert Advisor no gráfico de cinco minutos, será como você escreveu.

Ou substitua Open[0] por iOpen(Symbol (), PERIOD_M5, 0) em qualquer lugar do código, então ele funcionará a partir de qualquer gráfico.

Não, Close[0] é o preço de fechamento atual da barra 0, ou seja, apenas o preço atual. Você poderia simplesmente escrever Bid, o resultado é o mesmo.


OK, então vamos mudar a condição. Sai:




Muito obrigado por sua ajuda. Tudo bem. Mas......

1. Em cerca de cinco minutos, mais de 1 pedido é aberto.

2. Algumas ordens são fechadas por ordens de parada cujo preço é diferente do prescrito no código.

Informações sobreos pedidos acima podem ser encontradas neste link

http://clip2net.com/s/2Tfym

 

Desculpe. por favor, ajude-me. estou copiando um programa com algumas mudanças. o compilador me dá um erro: "(' - definição da função inesperada F:\forex\MetaTrader NordFX`experts\ia.mq4 (305, 16) .

o que isso significa?

- Tentei remover esta parte do programa - ela também diz o seguinte.

- tentou deixar esta parte inalterada - o resultado é o mesmo (mesmo erro)

sobre o programa nativo compilado com sucesso.

 
TarasBY:

O princípio pode ser compreendido:



Obrigado!
 
lopuh:

Desculpe. por favor me ajude. estou copiando um programa com algumas mudanças. o compilador me dá o erro: "(' - definição da função inesperada F:\forex\MetaTrader NordFX`experts\ia.mq4 (305, 16) .

o que isso significa?

- Tentei remover esta parte do programa - ela também diz o seguinte.

- tentou deixar esta parte inalterada - o resultado é o mesmo (mesmo erro)

sobre o programa nativo compilado com sucesso.

Por aqui

O erro sugere que você está definindo uma função dentro de outra função. Todas as funções devem ser definidas globalmente

 

Precisa de alguma ajuda.

Procurando por qualquer função ou roteiro que saiba como tirar uma foto de tela em algum momento, como ao abrir/fechar uma pose.

Quando não preciso, tenho me deparado com um de vez em quando, mas agora não consigo encontrá-lo.

AJUDA!
 
DhP:

Precisa de alguma ajuda.

Procurando por qualquer função ou roteiro que saiba como tirar uma foto de tela em algum momento, como ao abrir/fechar uma pose.

Quando não é preciso, de vez em quando me deparo com um, mas agora não consigo encontrá-lo.

AJUDA!
um consultor especializado de Igor Kim que faz uma captura de tela em um determinado intervalo
Razão: