Por favor, aconselhar como resolver o problema. Ao tentar enviar um ficheiro com SendFTP() há um erro 4014 - Não é permitida a chamada da função de sistema.
As definições de FTP são OK - relatórios e ficheiro de teste são enviados.
Por favor, aconselhar como resolver o problema. Ao tentar enviar um ficheiro com SendFTP() há um erro 4014 - Não é permitida a chamada da função de sistema.
As definições de FTP são OK - relatórios e ficheiro de teste são enviados.
Karputov Vladimir: Não é possível devido ao facto de, em caso de atrasos na rede ftp, o indicador poder abrandar todo o terminal. Mas, da EA, é bem-vindo para o fazer.
Olá a todos. Estou a escrever o meu primeiro AE e estou a enfrentar um problema que não posso vencer.
voidOnTick()
{
datetime EaStartTime = StringToTime(StartTime); // время начала работы советникаdatetime EaEndTime = StringToTime(EndTime); // время окончания работы советникаdatetime CurrTime = TimeCurrent(); // это если нужно взять время терминалаif (CurrTime < EaStartTime || CurrTime >= EaEndTime)
return; // если еще не время торговать - выход
{
PriceLow=iEnvelopes(NULL,0,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation,0,1);
PriceHigh =iEnvelopes(NULL,0,MA_Period,MA_Shift,MA_Method,Applied_Price,Deviation,1,1);
MacdCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_MAIN,0);
SignalCurrent=iMACD(NULL,0,InpFastEMA,InpSlowEMA,InpSignalSMA,PRICE_CLOSE,MODE_SIGNAL,0);
SignalMAPrevious=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,PRICE_MEDIAN,1);
SignalMAThis=iMA(NULL,0,InpMAPeriod,InpMAShift,InpMAMethod,PRICE_MEDIAN,0);
PriceCurrentOpen=iOpen(NULL,0,1);
PriceCurrentClose=iClose(NULL,0,1);
if (CountTrades()==0) CheckForOpen();
else
{
if(CountTrades()<max_trades) CheckForOpen();
}
}
}
void CheckForOpen()
{
//-----Ставим ордер на покупку.if(PriceCurrentOpen<PriceLow&&PriceCurrentOpen<PriceCurrentClose&&SignalCurrent<MacdCurrent&&SignalMAPrevious<SignalMAThis)
{
ticket=OrderSend(NULL,OP_BUY,Lots,Ask,slippage,0,0,"5",magic,0,Blue);
if(ticket>0)
return;
}
//-----Ставим ордер на продажу.if(PriceCurrentOpen>PriceLow&&PriceCurrentOpen>PriceCurrentClose&&SignalCurrent>MacdCurrent&&SignalMAPrevious>SignalMAThis)
{
ticket=OrderSend(NULL,OP_SELL,Lots,Bid,slippage,0,0,"5",magic,0,Red);
if(ticket>0)
return;
}
}
O meu EA deve dar um sinal de compra e venda se o bar anterior foi aberto fora do canal"Envelopes",se estava acima do canal, depois vender, se estava abaixo da compra, mas de facto envia sempre ordens quando lhe apetece, pode demorar muito tempo dentro do canal e de repente começar a comprar ordens, embora todas as outras condições estejam bem, se o sinal de venda-venda, comprar.
Como fazê-lo comprar uma encomenda por bar, em vez de todas de uma só vez o número de encomendas permitidas a cada segundo?
Olá a todos. Estou a escrever o meu primeiro AE e estou a enfrentar um problema que não posso vencer.
O meu EA deve dar um sinal de compra e venda se o bar anterior foi aberto fora do canal"Envelopes",se estava acima do canal, depois vender, se estava abaixo da compra, mas de facto envia sempre ordens quando lhe apetece, pode demorar muito tempo dentro do canal e de repente comprar ordem, embora todas as outras condições estejam bem, se vender sinal, vender, comprar, comprar.
Como fazê-lo comprar uma encomenda por bar, em vez de todas de uma só vez o número de encomendas permitidas a cada segundo?
Bom dia. Antes de enviar uma ordem, verifique se já tem posições em aberto. Se houver alguma, não envie uma ordem para abrir, caso contrário, envie-a. Tanto quanto sei o vosso código, esta função CountTrades() lida com ele. Portanto, verificar os valores devolvidos por esta função.
Até ontem uma ordem foi aberta e a próxima não será aberta até que a próxima ordem seja aberta, mas como fazer a minha EA abrir as ordens quando a barra anterior estava acima (abaixo) do canal?
Nickolay72: Até ontem tinha uma encomenda cada, e enquanto houver uma encomenda, a seguinte não será aberta.Como fazer a minha EA abrir ordens de acordo com a ordem quando a barra anterior tiver aberto acima (abaixo) do canal? Neste momento, a maioria das encomendas está a perder, porque não são abertas de acordo com as condições.
Se o Open Bar 1 for mais alto/mais baixo do que o canal.
Vladimir, obrigado pela sua paciência e ajuda!
Realmente cometeu um erro no código ...
Vou ter mais cuidado a partir de agora.
Boa tarde.
Por favor, aconselhar como resolver o problema. Ao tentar enviar um ficheiro com SendFTP() há um erro 4014 - Não é permitida a chamada da função de sistema.
As definições de FTP são OK - relatórios e ficheiro de teste são enviados.
Obrigado de antemão.
Boa tarde.
Por favor, aconselhar como resolver o problema. Ao tentar enviar um ficheiro com SendFTP() há um erro 4014 - Não é permitida a chamada da função de sistema.
As definições de FTP são OK - relatórios e ficheiro de teste são enviados.
Obrigado de antemão.
Está, por acaso, a tentar enviar de um indicador?
Acidentalmente, sim... Porque não pode?
Não é possível devido ao facto de, em caso de atrasos na rede ftp, o indicador poder abrandar todo o terminal. Mas, da EA, é bem-vindo para o fazer.
Olá a todos. Estou a escrever o meu primeiro AE e estou a enfrentar um problema que não posso vencer.
O meu EA deve dar um sinal de compra e venda se o bar anterior foi aberto fora do canal"Envelopes",se estava acima do canal, depois vender, se estava abaixo da compra, mas de facto envia sempre ordens quando lhe apetece, pode demorar muito tempo dentro do canal e de repente começar a comprar ordens, embora todas as outras condições estejam bem, se o sinal de venda-venda, comprar.
Como fazê-lo comprar uma encomenda por bar, em vez de todas de uma só vez o número de encomendas permitidas a cada segundo?
Olá a todos. Estou a escrever o meu primeiro AE e estou a enfrentar um problema que não posso vencer.
O meu EA deve dar um sinal de compra e venda se o bar anterior foi aberto fora do canal"Envelopes",se estava acima do canal, depois vender, se estava abaixo da compra, mas de facto envia sempre ordens quando lhe apetece, pode demorar muito tempo dentro do canal e de repente comprar ordem, embora todas as outras condições estejam bem, se vender sinal, vender, comprar, comprar.
Como fazê-lo comprar uma encomenda por bar, em vez de todas de uma só vez o número de encomendas permitidas a cada segundo?
Até ontem tinha uma encomenda cada, e enquanto houver uma encomenda, a seguinte não será aberta.Como fazer a minha EA abrir ordens de acordo com a ordem quando a barra anterior tiver aberto acima (abaixo) do canal? Neste momento, a maioria das encomendas está a perder, porque não são abertas de acordo com as condições.