[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 845
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Talvez alguém tenha um código loca escrito, por favor, envie-o para mim. Eu ficaria grato a você!
Fi-lo com um pendente, mas há um problema: quanto mais frequentemente abre neste lugar, mais longe da ordem em que se torna. Preciso que fique sem tampa e bem no local, mas não posso escrever as condições sob quais circunstâncias deve abrir!
Se você mesmo não pode decidir sobre as condições de abertura, como posso ajudá-lo?
Você tem que tentar de alguma forma formalizar o que quer fazer.
A ordem oposta deve abrir em um determinado ponto e, se tiver fechado, abrirá novamente neste ponto, se o preço tiver descido para ele. Acho que sim
Honestamente... É mais uma espécie de TOR de um cliente notório, do qual há muitos, do que a lógica do programador :)
1. Você precisa de uma ordem pendente ou abrir uma posição oposta se a posição atual atingir uma certa quantidade de pontos de perda?
2. Se for uma ordem oposta, e o preço a tocou, então será transformada em uma ordem de mercado, daí
2.1. Se uma posição de mercado tiver fechado (com prejuízo? com lucro?), a mesma ordem será colocada novamente ao mesmo preço? (seu tipo dependerá do preço atual)
2.2 Se uma ordem pendente for acionada, devo colocá-la novamente?
2.3
2.4.
.... Há um milhão a mais de perguntas a fazer. Não nos deixe apertar o pescoço para obter informações sobre o que você está procurando, hein?
Escreva a lógica do que você quer fazer. Essa é a primeira coisa. Você pode escrevê-lo em um pedaço de papel e um lápis.
E então você pode decidir como colocar tudo isso em código.
Estou interessado em trabalhar com volumes. há arquivos em formato .csv . procurei, na pasta do servidor comercial há arquivos em formato .hst
qual deve ser o formato dos arquivos csv e como devo convertê-los para . hst ?
Na verdade é mais simples do que isso, me parece.
1. Pedido de baía aberta, se o preço cair em 10 pips então abrimos a venda,
2.se a venda é fechada pelo SL, o preço começa a funcionar com a baía, se o preço desce novamente para menos 10 pips, venda aberta novamente
Se o sll for fechado pela TP, então minha EA fará tudo certo.
Eu tenho uma pergunta sobre como colocar uma condição:
1. Pedido de baía aberta, se o preço descer 10 pips, então abrir venda
2.se a venda é fechada pelo SL, o preço começa a trabalhar com a baía, se o preço desce novamente para menos 10 pips, então abra a venda novamente
Por favor, desculpe-me se estou lhe distraindo com uma pergunta provavelmente estúpida.
Comecei agora a aprender isto e não tenho ninguém a quem pedir conselhos.
Eu li o manual algumas vezes. Iniciei um Expert Advisor com as funções mais simples, com ordens pendentes.
Ainda não entendo o que tenho que fazer para abrir pedidos uma vez, e não a cada tiquetaque.
//+------------------------------------------------------------------+//| my.mq4 |
//| serjik |
//| |
//+------------------------------------------------------------------+
#propriedade "serjik" direitos autorais
//---- variáveis externas
Lotes duplos externos=0,1; // tamanho do lote
externo int StopLoss=0; // stop loss
Exterior int TakeProfit=10; // lucro
Distância interna externa DistanceSet=10; // distância do mercado de pedidos
escorregamento externo int int Slippage=3; // escorregamento de preço
//---- variáveisglobais
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
double ldStop=0, ldTake=0;
duplo pAsk=Ask+DistanceSet*Point;
duplo pBid=Bid-DistanceSet*Point;
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake); //
if (StopLoss!=0) ldStop=pBid+StopLoss*Point; //
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake); //
}
//+------------------------------------------------------------------+
//| Configuração do pedido |
//| Parâmetros: |
//| op - operação |
//| pp - preço |
//| ldStop - nível de parada |
//| ldTake - take level |
//+------------------------------------------------------------------+
SetOrder nulo(int op, double pp, double ldStop, double ldTake)
{
OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake);
retorno(0);
}
//+------------------------------------------------------------------+
Posso já tê-lo visto neste fórum, mas não tenho energia suficiente para relê-lo.
Se alguém me ajudar, MUITO OBRIGADO!
Na verdade é mais simples do que isso, me parece.
1. Pedido de baía aberta, se o preço cair em 10 pips então abrimos a venda,
2.se a venda é fechada pelo SL, o preço começa a funcionar com a baía, se o preço desce novamente para menos 10 pips, venda aberta novamente
Se o sll for fechado pela TP, então minha EA fará tudo certo.
Eu tenho uma pergunta sobre como colocar uma condição:
1. Pedido de baía aberta, se o preço descer 10 pips, então abrir venda
2.se a venda é fechada pelo SL, o preço começa a trabalhar com a baía, se o preço desce novamente para menos 10 pips, então abra a venda novamente
Por favor, desculpe-me se estou lhe distraindo com uma pergunta provavelmente estúpida.
Comecei agora a aprender isto e não tenho ninguém a quem pedir conselhos.
Eu li o manual algumas vezes. Iniciei um Expert Advisor com as funções mais simples, com ordens pendentes.
Ainda não entendo o que tenho que fazer para abrir pedidos uma vez, e não a cada tiquetaque.
//+------------------------------------------------------------------+//| my.mq4 |
//| serjik |
//| |
//+------------------------------------------------------------------+
#propriedade "serjik" direitos autorais
//---- variáveis externas
Lotes duplos externos=0,1; // tamanho do lote
externo int StopLoss=0; // stop loss
Exterior int TakeProfit=10; // lucro
Distância interna externa DistanceSet=10; // distância do mercado de pedidos
escorregamento externo int int Slippage=3; // escorregamento de preço
//---- variáveisglobais
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de desinicialização de especialistas |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retorno(0);
}
//+------------------------------------------------------------------+
//| função de início especializado |
//+------------------------------------------------------------------+
int start()
{
double ldStop=0, ldTake=0;
duplo pAsk=Ask+DistanceSet*Point;
duplo pBid=Bid-DistanceSet*Point;
if (StopLoss!=0) ldStop=pAsk-StopLoss*Point;
if (TakeProfit!=0) ldTake=pAsk+TakeProfit*Point;
SetOrder(OP_BUYSTOP, pAsk, ldStop, ldTake); //
if (StopLoss!=0) ldStop=pBid+StopLoss*Point; //
if (TakeProfit!=0) ldTake=pBid-TakeProfit*Point;
SetOrder(OP_SELLSTOP, pBid, ldStop, ldTake); //
}
//+------------------------------------------------------------------+
///| Estabelecimento do pedido |
//| Parâmetros: |
//| op - operação |
//| pp - preço |
//| ldStop - nível de parada |
//| ldTake - take level |
//+------------------------------------------------------------------+
SetOrder nulo(int op, double pp, double ldStop, double ldTake)
{
OrderSend(Symbol(),op,Lots,pp,Slippage,ldStop,ldTake);
retorno(0);
}
//+------------------------------------------------------------------+
Posso já tê-lo visto neste fórum, mas não tenho energia suficiente para relê-lo.
Se alguém me ajudar, MUITO OBRIGADO!