Como codificar? - página 343

 
techmac:
As perdas ocultas e lucros são arriscadas. Se a EA não funcionar, nada pode fechar sua EA - e as EA podem ser interrompidas do lado do corretor.

Prezada tecno,

você pode explicar mais,por que a EA não funciona,se a EA não será verificada e testada dezenas de vezes antes de ser aplicada ao vivo em geral ou na VPS...........(nada pode fechar sua EA) não entendeu o que você quis dizer ??? ....(e as EA podem ser interrompidas do lado do corretor).... por que outros motivos o corretor pode interromper quando a EA é aplicada com a permissão/acordo dos corretores. se você quer dizer, devido a algumas razões de parâmetros ocultos ?

a respeito de

 
mladen:
Sim. Quando o campo de stop loss da ordem é definido para algum valor (então essa linha é exibida) e quando é responsabilidade do corretor executar o stop loss pelo preço desejado (ao contrário do stop loss "suave" "oculto", quando é a sua EA que tem que fechar a ordem)

Caríssimos MLADEN,

obrigado, tão gentil da sua parte, entenda exatamente como isso funciona na realidade.

Existe alguma forma e possibilidade de que nossa EA tente executar TP/SL em caso de sl/tp oculto em algum ponto/nível e algumas atividades ocultas (codificadas em software de corretagem que lida com as atividades comerciais dos clientes, permite ou nega o processamento mais distante) do lado da corretora, impedindo que ela o faça?

lol,então neste caso,quem é mais confiável,eficaz e responsável EA ou corretor... .... como para as reputações dos corretores agora um dia...soft wares e equipamentos de sentimentos não humanos são mais sinceros e leais. .

cumprimentos

 
mntiwana:
Caríssimos MLADEN,

Obrigado, portanto, entenda exatamente como isso funciona na realidade.

lol,então neste caso,quem é mais confiável,eficaz e responsável EA ou corretor... .... como para as reputações dos corretores agora um dia...soft wares e equipamentos de sentimentos não humanos são mais sinceros e leais. .

cumprimentos

A questão é a seguinte :

No caso da SNB, se as pessoas estavam usando stop loss"escondido" "suave", elas não tinham nenhum motivo para serem reembolsadas por nada (já que não preenchiam o campo stop loss, o corretor não tinha nenhuma obrigação de fazer algo com essas ordens). Enquanto aqueles que tinham esse campo preenchido, também tinham alguns fundamentos para uma reclamação - não que tivessem tudo de volta, mas pelo menos podiam fazer algo.

 
mladen:
A questão é a seguinte: no caso do SNB, se as pessoas usavam stop loss "escondido" "suave", não tinham qualquer motivo para serem reembolsadas por nada (já que não preenchiam o campo de stop loss, o corretor não tinha qualquer obrigação de fazer algo com essas ordens). Enquanto aqueles que tinham esse campo preenchido, também tinham alguns fundamentos para uma reclamação - não que tivessem tudo de volta, mas pelo menos podiam fazer algo.

Caríssimos MLADEN,

Mais uma vez, obrigado por seu olhar de especialista nas coisas...., de modo que em todos os .... a perda é confirmada, devido a qualquer e apenas uma pequena razão quando o ganho é duvidoso em todo e qualquer caso.... as coisas correm assim, agora um dia.é normal.

uma pergunta chefe, quando o preço de mercado cai ou sobe tão rápido como a velocidade da luz.... há qualquer chance e possibilidade de que todos os nossos quebradores de perdas ( BE,SL e trailing stop) possam ser ignorados/rejeitados/passar pelo .... ou.... eles trabalham efetivamente por todos os meios em qualquer circunstância.

Atenciosamente

 
mntiwana:
Caríssimos MLADEN,

Mais uma vez, obrigado por seu olhar de especialista nas coisas...., de modo que em todos os .... a perda é confirmada, devido a qualquer e apenas uma pequena razão quando o ganho é duvidoso em todo e qualquer caso.... as coisas correm assim, agora um dia.é normal.

uma pergunta chefe, quando o preço de mercado cai ou sobe tão rápido como a velocidade da luz.... há qualquer chance e possibilidade de que todos os nossos quebradores de perdas ( BE,SL e trailing stop) possam ser ignorados/rejeitados/passar pelo .... ou.... eles trabalham efetivamente por todos os meios em quaisquer circunstâncias.

cumprimentos

mntiwana

Não deveria acontecer, mas por todos os meios, leia o contrato que você tem com o corretor. Especificidades sobre coisas como essas devem ser declaradas no contrato

 

Qual é a maneira mais simples de se verificar o cruzamento de dois valores?

 
apprentice coder:
Qual é a maneira mais simples de se verificar o cruzamento de dois valores?

Depende dos valores que você está comparando. Você pode dar um exemplo específico?

 
mladen:
Depende dos valores que você está comparando. Você pode dar um exemplo específico?

Por exemplo: cruzamento de duas médias

 

Olá, estou tendo alguns problemas com minha EA e pareço ter chegado a um beco sem saída. Agradeceria se alguém pudesse me ajudar com este assunto. Estou tentando fazer com que minha EA acione apenas uma troca por dia. Basicamente, esta é uma EA que abrirá uma troca uma vez que a vela se acenda por uma quantidade de certatina. Entretanto, parece que não consigo fazer com que o EA acione apenas uma troca por dia.

Atualmente, meu EA irá acionar outra negociação na mesma vela novamente se as condições forem cumpridas novamente depois que minha negociação já tiver TP ou SL.

Agradeço se alguém puder me ajudar com este assunto. Obrigado.

Abaixo está minha programação.

Atenciosamente

//---- parâmetros de entrada

TakeProfit duplo externo = 1000,0;

double Lots externos = 0,1;

StopLoss duplo externo = 980,0;

extern int Entry_Hour_1st = 21;

//+------------------------------------------------------------------+

//| função de iniciação de especialista |

//+------------------------------------------------------------------+

int init()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| função de desinicialização especializada |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| função de início especializado |

//+------------------------------------------------------------------+

int start()

{

//+------------------------------------------------------------------+

//... Troca de gatilhos

//+------------------------------------------------------------------+

int ticket, total;

duplo TP_Value, SL_Value;

total = OrdensTotal(); // verificar o número total de negócios atualmente abertos

if(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0,00100) && ((High[1] - Low[1]) > 0,00100))

{

se ((Fechar[1] - Abrir[1]) > 0,00100)

{

TP_Value = (Fechar[1] - Abrir[1]); // valor do corpo longo

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

se ((Abrir[1] - Fechar[1]) > 0,00100)

{

TP_Value = (Aberto[1] - Fechado[1]); // valor do corpo curto

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

se ((Abrir[1] - Fechar[1]) <= 0,00100)

{

TP_Valor = (Alto[1] - Baixo[1]); // valor da vela inteira incluindo cabeça e cauda

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

}

if (Hour()==Entry_Hour_1st && ((Baixo[1] - Baixo[0]) > 0,00100) && ((Alto[1] - Baixo[1]) > 0,00100))

{

//-------------------------------------------------------//

//-------- se H7 corpo de vela longo mais de 10pips --------//

//-------------------------------------------------------//

se ((Fechar[1] - Abrir[1]) > 0,00100)

{

TP_Value = (Fechar[1] - Abrir[1]); // valor do corpo longo

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

se ((Abrir[1] - Fechar[1]) > 0,00100)

{

TP_Value = (Aberto[1] - Fechado[1]); // valor do corpo curto

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

se ((Abrir[1] - Fechar[1]) <= 0,00100)

{

TP_Valor = (Alto[1] - Baixo[1]); // valor da vela inteira incluindo cabeça e cauda

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

}

}

retorno(0);

}

}

//+------------------------------------------------------------------+

 
tkuan77:
Olá, estou tendo alguns problemas com minha EA e pareço ter chegado a um beco sem saída. Agradeceria se alguém pudesse me ajudar com este assunto. Estou tentando fazer com que minha EA acione apenas uma troca por dia. Basicamente, esta é uma EA que abrirá uma troca uma vez que a vela se acender por uma quantidade de certatina. Entretanto, parece que não consigo fazer com que o EA acione apenas uma troca por dia.

Atualmente, minha EA vai acionar outra negociação na mesma vela novamente se as condições forem cumpridas novamente depois que minha negociação já tiver TP ou SL.

Agradeço se alguém puder me ajudar com este assunto. Obrigado.

Abaixo está minha programação.

Atenciosamente

//---- parâmetros de entrada

TakeProfit duplo externo = 1000,0;

double Lots externos = 0,1;

StopLoss duplo externo = 980,0;

extern int Entry_Hour_1st = 21;

//+------------------------------------------------------------------+

//| função de iniciação de especialista |

//+------------------------------------------------------------------+

int init()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| função de desinicialização especializada |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| função de início especializado |

//+------------------------------------------------------------------+

int start()

{

//+------------------------------------------------------------------+

//... Troca de gatilhos

//+------------------------------------------------------------------+

int ticket, total;

duplo TP_Value, SL_Value;

total = OrdensTotal(); // verificar o número total de negócios atualmente abertos

if(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0,00100) && ((High[1] - Low[1]) > 0,00100))

{

se ((Fechar[1] - Abrir[1]) > 0,00100)

{

TP_Value = (Fechar[1] - Abrir[1]); // valor do corpo longo

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

se ((Abrir[1] - Fechar[1]) > 0,00100)

{

TP_Value = (Aberto[1] - Fechado[1]); // valor do corpo curto

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

se ((Abrir[1] - Fechar[1]) <= 0,00100)

{

TP_Valor = (Alto[1] - Baixo[1]); // valor da vela inteira incluindo cabeça e cauda

SL_Valor = (Baixo[1] - 0,0010); // sempre o mesmo por muito tempo

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green);

return(0);

}

}

if (Hour()==Entry_Hour_1st && ((Baixo[1] - Baixo[0]) > 0,00100) && ((Alto[1] - Baixo[1]) > 0,00100))

{

//-------------------------------------------------------//

//-------- se H7 corpo de vela longo mais de 10pips --------//

//-------------------------------------------------------//

se ((Fechar[1] - Abrir[1]) > 0,00100)

{

TP_Value = (Fechar[1] - Abrir[1]); // valor do corpo longo

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

se ((Abrir[1] - Fechar[1]) > 0,00100)

{

TP_Value = (Aberto[1] - Fechado[1]); // valor do corpo curto

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

se ((Abrir[1] - Fechar[1]) <= 0,00100)

{

TP_Valor = (Alto[1] - Baixo[1]); // valor da vela inteira incluindo cabeça e cauda

SL_Valor = (Alto[1] + 0,0010); // sempre o mesmo para curto

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red);

return(0);

}

}

}

retorno(0);

}

}

//+------------------------------------------------------------------+

tkuan77

Você tem que encontrar o último bar fechado e ver se o dia do último bar fechado é o mesmo que o dia atual.

Você pode usar algo como esta função para obter o último horário de fechamento do pedido:

datetime GetLastClosedOrderTime()

{

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

CloseTime = OrderCloseTime();

}

return(CloseTime);

}

E então você pode verificar se a data é a mesma

Razão: