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
Peço ajuda para escrever um simples robô comercial baseado no indicador i-Regr. Se for bem feito, garanto um pagamento razoável.
Se alguém estiver interessado, escreva para ma.gog@mail.ru
A idéia geral é a seguinte:
1. O consultor especializado deve colocar ordens de parada e limite pendentes em fractais (parada de compra, parada de venda, limite de compra, limite de venda), o tempo de validade das ordens deve ser definido (horas, minutos).
2. Os tipos de ordem devem ser intercambiáveis (ordens de parada e de limite juntos; ou separadamente: apenas ordens de parada, apenas ordens de limite),
3. A distância do pedido que está sendo feito até o fractal deve ser definida em pips, e para pedidos de parada separadamente, e para pedidos de limite separadamente.
4. StopLoss e TakeProfit são fixos, ajustados imediatamente.
5. Você quer ter uma parada de fuga de uma tubulação e desativá-la.
6. O lote deve ser consertado. Mas também é possível criar uma gestão de dinheiro.
7. O spread deve ser considerado nos pedidos: (pedido de compra + spread, pedido de venda - spread)
Para contato: Cashinroman@yandex.ru
Alguém pode entender este código, porque no testador libra H4 USD funciona muito bem
E na demonstração e no real só derrama algo para mudá-lo sps talvez ele olhe na história
duplo externo Init_line1 = 1,9620;
duplo externo Init_line2 = 1,9630;
duplo externo Init_line3 = 1,9640;
duplo externo Init_line4 = 1,9650;
Int. externo Step_line = 40;
Lotes duplos externos = 1;
externo int ColUr = 2;
int i, j;
int a[4][4][4];//1-compra, 2-venda, 3-compra, 4-venda
minlot duplo;
data/hora LastWork;
//+------------------------------------------------------------------+
//| função de iniciação de especialista |
//+------------------------------------------------------------------+
//********************************************************************
//verificar se há posições em aberto,
//põe o número de posições em aberto na matriz a[4][4].
bool Pred()
{
int NL; // cujas fileiras estão na matriz
para (i=0; i<==4; i++)
para (j=0; j<=4; j++)
a[i][j]=-1;//tudo em -1
para (i=0; i<OrdensTotal(); i++) //reversão de todas as ordens
{
se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso)//seleccionar ordem se não for possível
pausa;
se (OrderSymbol()==Symbol())//sexistem posições para este símbolo
se (OrderComment()=="a1")// existe uma marca?
NL=0;
senão se (OrderComment()=="a2")//é nossa etiqueta?
NL=1;
senão se (OrderComment()=="a3")//é nossa etiqueta?
NL=2;
senão se (OrderComment()=="a4")//é nossa tag?
NL=3;
senão
continuar;// não? então continue a busca
// temos nossas ordens, vamos lidar com elas
se (OrderType()==OP_BUY)// se a posição for Comprar
a[NL][0]=OrderTicket();// lembre-se de seu número
caso contrário se (OrderType()==OP_SELL)// se a posição estiver à venda
a[NL][1]=OrderTicket();// lembre-se de seu número
caso contrário se(OrderType()==OP_BUYSTOP)// se a posição estiver pendente de compra
a[NL][2]=OrderTicket();// lembre-se de seu número
caso contrário se (OrderType()==OP_SELLSTOP)// se a posição estiver pendente de venda
a[NL][3]=OrderTicket();// lembre-se de seu número
}// fim do laço
}
//********************************************************************
//Exemplo:
//controle nível 1,9420, preço atual 1,9277 ou 1,9537 encontrar perto do nível inferior
//а)|1.9420-1.9277|*10000/40=3.575
//3,575-3=0,575; 0,575*40=23; 1,9277-0,0023=1,9255 nível superior mais próximo
//б)|1.9420-1.9537|*10000/40=2.925
// 2,925-2=0,925; 0,925*40=37; 1,9537-0,0037=1,9500 Nível mais baixo
int init()
{
LastWork = -1;
}
//********************************************************************
int deinit()
{
retorno(0);
}
//********************************************************************
int start()
{
se (CurTime() - LastWork < 5)
retorno(0); // não mais de uma vez a cada 5 segundos
LastWork = CurTime();
Pred();//todos coletados
Comment("a[1][1]=",a[0][0]," a[0][2]=",a[0][1]," a[1][3]=",a[0][2]," a[1][4]=",a[0][3],"\n",
"a[2][1]=",a[1][0], "a[2][2]=",a[1][1], "a[2][3]=",a[1][2], "a[2][4]=",a[1][3],"\n"
"a[3][1]=",a[2][0]," a[3][2]=",a[2][1], "a[3][3]=",a[2][2], "a[3][4]=",a[2][3],"\n".
"a[4][1]=",a[3][0]," a[4][2]=",a[3][1]," a[4][3]=",a[3][2]," a[4][4]=",a[3][3],"\n")
Comentário de corda;
duplo Init_line,qw,qw1,uo,w, sl, op;
for(i=0;i<ColUr;i++)//executar a matriz a[4][4]
{
//necessário mais
coment=";
se (i==0)
{
coment="a1";
Init_line=Init_line1;
}
caso contrário se(i===1)
{
coment="a2";
Init_line=Init_line2;
}
caso contrário se(i===2)
{
coment="a3";
Init_line=Init_line3;
}
caso contrário se(i===3)
{
coment="a4";
Init_line=Init_line4;
}
//verificar o nível mais próximo
w=(MathAbs(Bid-Init_line)*1/Point)/Step_line;//coeficiente
if (Licitação>=Init_line)
qw=Step_line*(w-MathFloor(w));//número de pontos até o nível mais próximo
senão
qw=Step_line-Step_line*(w-MathFloor(w));//número de pontos até o nível mais próximo
qw1=Step_line-qw;//número de pontos até o nível mais próximo
// Comentário("Linha1 ",Init_line", w=",((Bid-Init_line)*1/Point)/Step_line", qw=",qw," NewLine",Bid-(qw)*Point);
if ((a[i][0]==-1)&&(a[i][1]==-1)&&(a[i][2]==-1)&&(a[i][3]==-1))//нету открытых
{
//pedidos de colocação
se (qw+4>=15)// podemos colocar uma espera para venda
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw)*Point,0,Bid-Point*(qw-2*Step_line),0,0,CLR_NONE);
caso contrário //setar o próximo nível abaixo
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Point*(qw+Step_line),0,Bid-Point*(qw+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
se (qw1>=15)//cpode esperar pela compra
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4)*Point,0,Ask+Point*(qw1-4-2*Step_line),0,coment,0,0,CLR_NONE);
caso contrário/// colocar para o próximo nível acima
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Point*(qw1-4+Step_line),0,Ask+Point*(qw1-4+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
}
//!!!!!!!!!!!!!
senão se (a[i][0]!=-1)// comprará
{//abrir compra
OrderSelect(a[i][0],SELECT_BY_TICKET, MODE_TRADES);//selecione ordem aberta
uo=OrderOpenPrice();//seu preço aberto - nível
op=uo;
se (uo<(Ask-(qw-4)*Point))// preço aberto for mais baixo que o baixo atual
//cheque SL aberto, se necessário modifique
se (OrderStopLoss()<(Ask-Point*(qw+4+2*Step_line)))//SL for inferior a 2 níveis abaixo do preço atual
OrderModify(a[i][0],NULL,Ask-Point*(qw+4+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//decidir sobre o pendente
se (a[i][3]!=-1)//stand selltop
{
OrderSelect(a[i][3],SELECT_BY_TICKET, MODE_TRADES);//posição sobre pendentes
uo=Preço de Ordem Aberta();// preço aberto - nível
if(uo!=sl)//(Bid-Point*(qw+2*Step_line)))// o nível aberto é igual à parada BUY
OrderModify(a[i][3],sl, sl+Point*(2*Step_line),NULL,NULL,CLR_NONE)
// OrderModify(a[i][3],Bid-Point*(qw-2*Step_line),Bid+qw*Point,NULL,NULL,NULL);
}
caso contrário, se (a[i][3]==-1)//volta para comprar tiver sido aberta, a vendedtop deve ser definida
OrderSend(Symbol(), OP_SELLSTOP, Lots, sl,0,sl+Point*(2*Step_line),NULL,coment,0,0,CLR_NONE);
// OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw+2*Step_line)*Point,0,Bid-Point*(qw),NULL,coment,0,0,0)
}
//!!!!!!!!!!!!!
senão se (a[i][1]!=-1)//stand sell
{
OrderSelect(a[i][1],SELECT_BY_TICKET, MODE_TRADES);//selecione a ordem aberta
uo=Preço de Ordem Aberta();// preço aberto - nível
op=uo;
se (uo>(Bid+(qw1)*Ponto))// preço aberto for maior que o nível superior atual
//cheque SL aberto, se necessário modifique
se (OrderStopLoss()>(Bid+Point*(qw1+2*Step_line)))//SL for superior a 2 níveis acima do preço atual
OrderModify(a[i][1],NULL,Bid+Point*(qw1+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
// adiar
se (a[i][2]!=-1)// vale a pena comprar
{
OrderSelect(a[i][2],SELECT_BY_TICKET, MODE_TRADES);//posição sobre pendentes
uo=Preço de Ordem Aberta();// preço aberto - nível
se (uo!=sl)// o nível aberto for igual à parada de venda
OrderModify(a[i][2],sl,sl-(2*Step_line)*Point,NULL,NULL,CLR_NONE);
// OrderModify(a[i][2],Ask+Point*(qw1-4+2*Step_line), Ask+(qw1-4)*Point,NULL,NULL,NULL);
}
senão se (a[i][2]==-1)//volta para vender tiver sido aberto, temos de definir o stop de compra
OrderSend(Symbol(), OP_BUYSTOP, Lots, sl,0,sl-Point*(2*Step_line),NULL,0,0,CLR_NONE);
//OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4+2*Step_line)*Point,0,Ask+Point*(qw1-4),NULL,coment,0,0,0,0)
}
}
retorno (0);
}
Caros senhores programadores! Gostaria de pedir ajuda para escrever um EA. Ainda não falo MQL. Se meu EA for lucrativo, estou pronto para compartilhar meus lucros com a pessoa que o escreveu, ou descrever suas condições. Acho que deveria ser lucrativo.
Sobre "dividir o prêmio" - isso é digno)
Mas é mais interessante "descrever os termos".
Meus termos: Escreverei pelo dinheiro agora, não pretendo lucrar.
Contatos no perfil
Caros visitantes a este site. Um Expert Advisor muito simples precisa ser escrito. Tenho uma sugestão a fazer. Eu lhe dou uma condição, você me dá o Expert Advisor. Você também poderá usar minha estratégia simples. Eu apreciaria se você pudesse explicar como alterar o volume de pedidos na EA, quando isto for necessário. Darei os termos durante a correspondência pessoal ou ICQ 300333834 ou pelo correio forexbmf@yandex.ru Andrew.
Se você quiser negociar gratuitamente (de preferência real ou demo 1-2 meses).
Caso contrário, aqui https://www.mql5.com/ru/job
Однако выслушав условие вы поймёте, что действительно имеет смысл такая торговля.
october, você não tem idéia de quantas pessoas antes de você disseram praticamente as mesmas palavras e se chatearam.
Prezados visitantes do local. Uma EA muito simples precisa ser escrita.
Veja o EA Wizard online: http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Suporte em russo disponível