[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 291
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
Ajude, por favor, tenha um conselheiro para romper os fractais. Eu peguei bons parâmetros só preciso acrescentar que ele estabelece muito martingale (mais 2 quando você perde). Ou dar o poder sobre o conselheiro só vai dobrar o lote sem esperar por 2 para correr (se disponível):
//+------------------------------------------------------------------+
|| Fractals.mq4 |
//| PARA |
//| http://www.forex-tradexperts-to.narod.ru |
//+------------------------------------------------------------------+
#propriedade copyright "TO
#link da propriedade "http://www.forex-tradexperts-to.narod.ru"
#incluir <WinUser32.mqh>.
externo int TP_Fract_3=300;
externo int SL_Fract_3=200;
externo int TP_Fract_11=500;
externo int SL_Fract_11=300;
external bool buy_Fract_3=true;
venda_Fracto_3=verdadeiro;
external bool buy_Fract_11=true;
venda_Fracto_11=verdadeiro;
podtvergdenie=false;
tofract=10;
lotes duplos externos=0,1;
ID int externo = 5452;
string com;
dupla propagação;
int init()
{
com=DoubleToStr(ID,0);
spread=MarketInfo(Symbol(),MODE_SPREAD)*Ponto;
retorno(0);
}
int deinit()
{
retorno(0);
}
data/hora t1,t2=0;
pedido de bool (preço duplo, tipo int, string c,int m)
{
int i;
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderComment()==c && OrderMagicNumber()==m && OrderOpenPrice()==preço && OrderType()==tipo)return(false);
if(i==0)return(true);
}
if(OrdersTotal()==0)return(true);
}
int start()
{
int i,ret;
t1=Tempo[0];
if(t1!=t2)
{
int fract_buy_3=iHighest(Symbol(),Period(),MODE_HIGH,5,1);
int fract_sell_3=iLowest(Symbol(),Period(),MODE_LOW,5,1);
int fract_buy_11=iHighest(Symbol(),Period(),MODE_HIGH,21,1);
int fract_sell_11=iLowest(Symbol(),Period(),MODE_LOW,21,1);
if( fract_buy_3===3 && buy_Fract_3===verdadeiro)
{
if(OrderTotal()==0)if(order(order(high[fract_buy_3]+tofract*Point+spread,4,com,5))OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,5);
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderComment()===com && OrderMagicNumber()==5 && OrderType()==4)
{
OrderModify(OrderTicket(),High[fract_buy_3]+tofract*Point+spread, High[fract_buy_3]+tofract*Point-SL_Fract_3*Point, High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,0,Blue);
pausa;
}
if(i==0)if(order(order(high[fract_buy_3]+tofract*Point+spread,4,com,5))
{
if(podtvergdenie)
{
ret=MessageBox("Signal at "+Symbol()+" H1 BUYSTOP "+"{Set Order?", "Signal", MB_YESNO|MB_ICONQUESTION);
if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,5);
}
if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_3]+tofract*Point+spread,10,High[fract_buy_3]+tofract*Point-SL_Fract_3*Point,High[fract_buy_3]+tofract*Point+spread+TP_Fract_3*Point,com,5);
}
}
}
if( fract_sell_3===3 && sell_Fract_3===verdadeiro)
{
if(OrderTotal()==0)if(order(Order(Low[fract_sell_3]-tofract*Point,5,com,5))OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Baixo[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Baixo[fract_sell_3]-tofract*Point-TP_Fract_3*Point,com,5);
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderComment()===com && OrderMagicNumber()==5 && OrderType()==5)
{
OrderModify(OrderTicket(),Low[fract_sell_3]-tofract*Point,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point-TP_Fract_3*Point,0,Red);
pausa;
}
if(i==0)if(order(Order(Low[fract_sell_3]-tofract*Point,5,com,5))
{
if(podtvergdenie)
{
ret=MessageBox("Sinal em "+Symbol()+"H1 SELLSTOP "+"{Set Order?", "Signal", MB_YESNO|MB_ICONQUESTION);
if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point-TP_Fract_3*Point,5);
}
if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_3]-tofract*Point,10,Low[fract_sell_3]+spread-tofract*Point+SL_Fract_3*Point,Low[fract_sell_3]-tofract*Point*Point,com,5);
}
}
}
if( fract_buy_11==11 && buy_Fract_11===verdadeiro)
{
if(OrderTotal()==0)if(order(order(high[fract_buy_11]+tofract*Point+spread,4,com,21))orderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,21);
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderComment()===com && OrderMagicNumber()==21 && OrderType()==4)
{
OrderModify(OrderTicket(),High[fract_buy_11]+tofract*Point+spread, High[fract_buy_11]+tofract*Point-SL_Fract_11*Point, High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,0,Blue);
pausa;
}
if(i==0)if(order(order(high[fract_buy_11]+tofract*Point+spread,4,com,21))
{
if(podtvergdenie)
{
ret=MessageBox("Sinal em "+Symbol()+"H4 BUYSTOP "+"{Set Order?", "Signal", MB_YESNO|MB_ICONQUESTION);
if(ret==IDYES)OrderSend(Symbol(),OP_BUYSTOP,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,21);
}
if(!podtvergdenie)OrderSend(Symbol(),OP_BUYSTOP,lots,High[fract_buy_11]+tofract*Point+spread,10,High[fract_buy_11]+tofract*Point-SL_Fract_11*Point,High[fract_buy_11]+tofract*Point+spread+TP_Fract_11*Point,com,21);
}
}
}
if( fract_sell_11==11 && sell_Fract_11===verdadeiro)
{
if(OrderTotal()==0)if(order(Order(Low[fract_sell_11]-tofract*Point,5,com,21))orderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Baixo[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Baixo[fract_sell_11]-tofract*Point-TP_Fract_11*Point,com,21);
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderComment()===com && OrderMagicNumber()==21 && OrderType()==5)
{
OrderModify(OrderTicket(),Low[fract_sell_11]-tofract*Point,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point-TP_Fract_11*Point,0,Red);
pausa;
}
if(i==0)if(order(Order(Low[fract_sell_11]-tofract*Point,5,com,21))
{
if(podtvergdenie)
{
ret=MessageBox("Sinal em "+Symbol()+"H4 BUYSTOP "+"{Set Order?", "Signal", MB_YESNO|MB_ICONQUESTION);
if(ret==IDYES)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point-TP_Fract_11*Point,21);
}
if(!podtvergdenie)OrderSend(Symbol(),OP_SELLSTOP,lots,Low[fract_sell_11]-tofract*Point,10,Low[fract_sell_11]+spread-tofract*Point+SL_Fract_11*Point,Low[fract_sell_11]-tofract*Point*Point,com,21);
}
}
}
t2=Tempo[0];
}
retorno(0);
}
Eu sou ruim em escrever russo, desculpe!
Eu não sou bom em escrever russo, desculpe!
Diga-me quem pode ajudar com o bloco Klimov, o problema é que ele não devolve o valor do último fechado, mas o valor do último fechado pela condição
assim em 2 condições
devolve ambos os valores Verdadeiro,
como fazê-la retornar apenas por última ordem fechada e não por última ordem condicional,
acrescentei muita verificação ao código para minha conveniência
Diga-me quem pode ajudar com o bloco Klimov, o problema é que ele não devolve o valor do último fechado, mas o valor do último fechado pela condição
assim em 2 condições
devolve ambos os valores Verdadeiro,
como fazê-la retornar apenas por última ordem fechada e não por última ordem condicional,
acrescentei muita verificação ao código para minha conveniência
Você adicionou o cheque de lotes a esta função? Agora eles verificam as últimas posições fechadas com o lote passado, e o lote é provavelmente sempre igual a zero, ou um inteiro. A variável deve ser do tipo duplo. Por que precisamos de muita verificação aqui, afinal?
Você escreve o que você quer alcançar, e eles lhe dirão :)
Sim, e por que o lote é um int? O lote sempre foi o dobro.
Você poderia fazer isso, quando ainda tiver uma ordem, determinar qual ordem é deixada e procurar a ordem oposta.
Diga-me quem pode ajudar com o bloco Klimov...
Verifique os lotes na função adicionados por você mesmo? Agora eles verificam as últimas posições fechadas com o lote passado, e o lote é provavelmente sempre igual a zero, ou um inteiro. A variável deve ser do tipo duplo. Por que precisamos de muita verificação aqui, afinal?
Você escreve o que você quer alcançar, e eles lhe dirão :)
Eu já consegui tudo, mas existe um bug, é em um certo momento uma ordem que eu não preciso aparecer,
Tentei mudá-lo para int, originalmente era o dobro, mas esqueci de devolvê-lo, e se eu usar uma função separada sem verificação de lote, o resultado não muda, então talvez eu não o tenha verificado corretamente, me ajude a entender o que está errado com este bug
este é o aspecto do pedido
Sim, e por que o lote é um int? O lote sempre foi o dobro.
Você poderia fazer isso, quando ainda tiver uma ordem, determinar qual ordem é deixada e procurar a ordem oposta.
não é tão simples porque as condições de abertura podem ser 2 na venda, e então esta busca não vai encontrar nada
Não duplique os postes em fios diferentes, é má forma.
Desculpe, vou me esforçar mais para lembrar de apagar os mesmos postes de fios diferentes,