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
Para ganhar experiência nesta área, vou escrever 25 EAs gratuitamente para suas idéias e estratégias interessantes
Restam apenas 19 EAs
Tenho tal problema, já tenho um EA e funciona bem, o problema é com o bloco de parada de rastreamento. Não funciona por alguma razão e não será aberto quando comercializado. Aqui está a própria EA. Talvez você tenha alguma idéia do que há de errado com o trailing stop? Não tenho idéia do que fazer sem ele.
Ishimoku - MACD.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>
parâmetros de corda externa=" Ichimoku";
tenkan_sen_sen=3 externo interno;
kijun_sen_sen=48 externo interno;
senkou_span_b=52;
parâmetros de cadeia externa="Média móvel";
período int maPeríodo=4;
método externo int ma_method=1;
preço_aplicado_aplicado_externo=3;
parâmetro de corda externa=" MACD";
externo int FastEMA=22;
externo int SlowEMA=52;
sinal externo intalEMA=9;
parâmetro de corda externa=" EA";
externo int TP=200;
externo int SL=500;
escorregamento interno externo=3;
lote duplo externo=0,1;
bool externo Add1/*(TENKANSEN resp. KIJUNSEN)*/ = verdadeiro;
bool externo Add2/*(TENKANSEN revisado Ma)*/=verdadeiro;
fervura externa=verdadeiro;
duplo trilho externoStop=200;
zashita int exterior=1;
bool buy1=falso,buy2=falso,buy3=falso,buy4=falso;
bool sell1=falso,sell2=falso,sell3=falso,sell4=falso,sell22=falso; buy22=falso;
int ticket=0;
int i;
datetime t1=0,t2=1,t3=1,t4=1,t5=1,t7=1,t8=1;
int init()
{
retorno(0);
}
int deinit()
{
retorno(0);
}
int start()
{
t1=Tempo[0];
duplo MACDRED1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,1);
duplo MACDRED2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_MAIN,2);
duplo MACDBLUE1=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,1);
duplo MACDBLUE2=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,PRICE_CLOSE,MODE_SIGNAL,2);
double IshRed1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,1);
double IshRed2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_TENKANSEN,2);
duplo IshBlue1=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,1);
double IshBlue2=iIchimoku(NULL,0,tenkan_sen,kijun_sen,senkou_span_b,MODE_KIJUNSEN,2);
duplo MA1=iMA(NULL,0,maPeriodo,0,ma_método,aplicado_preço,1);
duplo MA2=iMA(NULL,0,MaPeriod,0,ma_method,applied_price,2);
if(MACDRED1>MACDBLUE1 && MACDRED2<MACDBLUE2 && t3!=t1)
{ // MACD BUY signal
buy1=true;sell1=false;t3=Time[0];
}
if(MACDRED1<MACDBLUE1 && MACDRED2>MACDBLUE2 && t3!=t1)
{ // MACD SELL signal
sell1=true;buy1=false;t3=Time[0];
}
if(IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)
{ // O sinal Ishimoku atravessa o MA em BUY
buy2=true;sell2=false;t4=Time[0];
}
if(IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)
{ // O sinal Ishimoku cruza MA na SELL
sell2=true;buy2=false;t4=Time[0];
}
if(IshRed1>IshBlue1 && IshRed2<IshBlue2 && t5!=t1)
{ // Sinal Ishimoku Cruzes rápidas Lento para comprar
buy3=true;sell3=false;t5=Time[0];
}
if(IshRed1<IshBlue1 && IshRed2>IshBlue2 && t5!=t1)
{ // Sinal na Ishimoku Cruzes rápidas Lento na SELL
sell3=true;buy3=false;t5=Time[0];
}
if(Add1===verdadeiro && buy3===verdadeiro && buy4===verdadeiro && t1!=t8)
{ //abrir adições
PlaySound("Alert.wav");
int=MessageBox("Adicionar um pedido para Comprar?",MB_YESNO|MB_ICONQUESTION);
if(ret===6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}
t8=Time[0];buy3=false;buy4=false;
}
if(Add1===verdadeiro && sell3===verdadeiro && sell4===verdadeiro && t1!=t7)
{ //abrir adições
PlaySound("Alert.wav");
int ret2=MessageBox("Adicionar um pedido de venda?",MB_YESNO|MB_ICONQUESTION);
if(ret2==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}
t7=Time[0];sell3=false;sell4=false;
}
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY)
{
buy1=falso;buy2=falso;buy22=verdadeiro;
pausa;
}
}
if(Add2===verdadeiro && compra22 && IshRed1>MA1 && IshRed2<=MA2 && t4!=t1)
{ // Adicionado por Ma e Tenkan_sen para Comprar
PlaySound("Alert.wav");
int ret3=MessageBox("Adicionar um pedido para Comprar?",MB_YESNO|MB_ICONQUESTION);
if(ret3==6){ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}
t4=Time[0];buy22=false;
}
if(Add2===true && sell22 && IshRed1<MA1 && IshRed2>=MA2 && t4!=t1)
{ // Adicionado por Ma e Tenkan_Sen na Sell
PlaySound("Alert.wav");
int ret4=MessageBox("Adicionar um pedido para vender?",MB_YESNO|MB_ICONQUESTION);
if(ret4==6){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask-SL*Point,Bid+TP*Point,NULL,0,0,Red);if(ticket>0)PlaySound("ok.wav");if(ticket<0)Alerta("Order not set!!! error - "+GetLastError()+"set manually");}
t4=Time[0];sell22=false;
}
if(buy1===verdadeiro && buy2===verdadeiro && t1!=t2)
{ // ordens iniciais abertas
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Gold);
}
PlaySound("Alert.wav");
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,Blue);
if(ticket>0)PlaySound("ok.wav");
if(ticket<0)Alert("Order not set!!! error - "+GetLastError()+"set manually");
t2=Time[0];buy1=false;buy2=false;buy4=verdadeiro;
}
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_SELL)
{
sell1=false;sell2=false;sell22=verdadeiro;
pausa;
}
}
if(sell1===verdadeiro && sell2===verdadeiro && t1!=t2)
{ // ordens iniciais abertas
for(i=OrdensTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Gold);
}
PlaySound("Alert.wav");
ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,slippage,Ask+SL*Point,Bid-TP*Point,NULL,0,0,Red);
if(ticket>0)PlaySound("ok.wav");
if(ticket<0)Alert("Order not set!!! error - "+GetLastError()+"set manually");
t2=Time[0];sell1=false;sell2=false;sell4=true;buy22=false;
}
// Parada de trilha
duplo SL,TP,preço aberto,lucro;
int ticketOrder,zamok,tipo;
comunicação por cordas;
for(i=OrdensTotal();i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(trailing===true && OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)>0 && MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop)!=0 && (OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE))>=trailingStop*MathFloor(OrderProfit()/MarketInfo(Symbol(),MODE_TICKVALUE)/trailingStop))
{
if(OrderType()==0){SL=Bid-trailingStop*Point;if(SL===OrderOpenPrice())SL+=zashita*Point;}
if(OrderType()===1){SL=Ask+trailingStop*Point;if(SL===OrderOpenPrice())SL-=zashita*Point;}
TP=OrderTakeProfit();
if(OrderType()==0)if(SL>=OrderStopLoss()+trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);
if(OrderType()==1)if(SL<=OrderStopLoss()-trailingStop*Point)OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP,0);
}
}
retorno(0);
}
Não vou responder a todas elas, mas é definitivamente um bug:
A última ordem é OrderTotal()-1.
você pode escrever/escrever um multi EA de graça?
O boneco está disponível.
Olá, gostaria de pedir sua ajuda na prescrição de T/P e Magic_Number no meu EA. Cumprimentos ao Timofey.
Boa tarde.
como você escreveria uma peça como esta?
duplo a; //
duplo b; // ambos a e b podem assumir absolutamente qualquer valor: números, leituras de indicadores, número de ticks para 500 velas, etc.
duplo X; // valor de desvio +-X
se
(a+x e a-x) cai no campo dos valores (b+x e b-x)
{ação}
senão
{regresso 0}
Boa tarde.
como você escreveria uma peça como esta?
duplo a; //
duplo b; // ambos a e b podem assumir absolutamente qualquer valor: números, leituras de indicadores, número de ticks para 500 velas, etc.
duplo X; // valor de desvio +-X
se
(a+x e a-x) cai no campo dos valores (b+x e b-x)
{ação}
senão
{regresso 0}
Se x for o mesmo valor em todos os casos, você está essencialmente comparando dois números a e b. Não há dúvidas sobre como entrar em um intervalo aqui.
Por exemplo, pegue a = 10, b = 11. Então você quer que o intervalo 12 a 8 caia no intervalo 13 a 9?
Se x for o mesmo em todos os casos, você está essencialmente comparando dois números a e b. Não se trata de nenhum intervalo.
Por exemplo, pegue a = 10, b = 11. Então você quer que o intervalo 12 a 8 caia no intervalo 13 a 9?
É isso mesmo.