[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 288

 
Roger:

Por alguma razão, eu entendi bem (exceto pelo alfabeto cirílico)

Está certo? É a mesma falha que a minha.

 

Sim, então é uma falha.

Eu encontrei um bug. Na biblioteca para esta função na linha

double DecimalArray[17]={ 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0,  10000000.0, 100000000.0,
                             1000000000.0, 10000000000.0, 100000000000.0, 10000000000000.0, 100000000000000.0,
                             1000000000000000.0, 1000000000000000.0, 10000000000000000.0 };
você deve apagar zero em cada um dos números 13º, 14º e 15º.


Agora corretamente.

2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 15 çíàêàìè ðàâíî 0.201304150854320
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 14 çíàêàìè ðàâíî 0.20130415085432
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 13 çíàêàìè ðàâíî 0.2013041508543
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 12 çíàêàìè ðàâíî 0.201304150854
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 11 çíàêàìè ðàâíî 0.20130415085
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 10 çíàêàìè ðàâíî 0.2013041509
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 09 çíàêàìè ðàâíî 0.201304151
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 08 çíàêàìè ðàâíî 0.20130415
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 07 çíàêàìè ðàâíî 0.2013042
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 06 çíàêàìè ðàâíî 0.201304
2013.04.14 22:54:33     stdlib GBPUSD,H1: loaded successfully
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé SS = 32
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé MM = 54
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé HH = 8
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DD = 15
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé MN = 4
2013.04.14 22:54:33     test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé YY = 2013
 
Roger,muito obrigado!!! Tudo funcionou! Agora está funcionando como deveria!
 

Olá, alguém pode me dizer como fazer um EA a partir de um roteiro?

 

Olá. Eu não sou bom em programação, não consigo encontrar um bug, a EA funciona no testador mas não há negócios abertos. Por quê? Por favor, ajude.

//---- parâmetros de entrada
externo int MA1=85;
externo int MA2=75;
externo int MA3=5;
int int fastema externo=15;
exterior int int lowema=26;
sl=15;
int tp=15;

/*
vltbars int externo=10; //número de barras para cálculo de volatilidade
delitro duplo externo=1,5; //c divisor de volatilidade atual
dobro de paradas externas = 0,50; //f de 1 a 99

controle de tempo de bool externo=falso;
hora de início do fio externo = "07:00:00";
tempo de parada do fio externo = "17:00:00";
*/

Lotes duplos externos=0,1;

int startb,inicia;

duplo estofamento;
int init()
{
stoplevel=MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL);
}


int start()
{int comprar,vender;

comprar=0; vender=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY){buy=1;}
if(OrderType()==OP_SELL){sell=1;}
}

duplo wma1 =iMA(NULL,0,MA1,0,MODE_LWMA,PRICE_LOW,1);
duplo wma2 =iMA(NULL,0,MA2,0,MODE_LWMA,PRICE_LOW,1);
duplo ema1 =iMA(NULL,0,MA3,0,MODE_EMA,PRICE_CLOSE,1);

macdcurr duplo =iMACD(NULL,0,fastema,lowema,1,PRICE_CLOSE,MODE_MAIN,1);
double macdlast =iMACD(NULL,0,fastema,lowema,1,PRICE_CLOSE,MODE_MAIN,2);


if(ema1<wma1 && ema1<wma2)startb=1;
if(ema1>wma1 && ema1>wma2)starts=1;

if(ema1>wma1 && ema1>wma2 && startb===1 && (macdcurr>0 || macdcurr>macdlast) && buy==0)
{
Imprimir("BUY Bid: "+Bid+" sl: "+sl+" TakeProfit: "+tp);
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-sl*Point,Ask+tp*Point, "FORTRADER.RU",0,0,0,Red);
startb=0;
}
if(ema1<wma1 && ema1<wma2 && starts====1 && (macdcurr<0 || macdcurr<macdlast)&& sell==0)
{
Imprimir("SELL Bid: "+Bid+" sl: "+sl+" TakeProfit: "+tp);
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+sl*Point,Bid-tp*Point, "FORTRADER.RU",0,0,Red);
começa=0;
}

retorno(0);
}


 
qwert2:

Olá, alguém pode me dizer como fazer uma EA a partir de um roteiro?

Coloque-o na pasta EA.
 
Zhunko:
Coloque-o na pasta Expert.

O roteiro executa a ação, se você apenas movê-lo para a pasta de especialistas, ele executa a ação a cada tique, em vez de iniciar uma nova ação somente após a antiga ter terminado.

 
qwert2:

O roteiro executa a ação, se você apenas movê-lo para a pasta Expert, ele executa a ação a cada tique, em vez de iniciar uma nova ação somente após a antiga ter terminado.

Eu não entendo. Do que se trata? É uma pergunta?
 
Zhunko:
Eu não entendo. Do que se trata? Isso é uma pergunta?

Escrevi isto sobre o que acontece se você simplesmente mover o roteiro para a pasta dos especialistas. Funciona, mas não da maneira que precisamos. O roteiro cria 8 ordens pendentes. Se apenas o salvarmos na pasta Expert Advisors, ele cria 8 ordens pendentes após cada tick. Preciso que ele faça 8 novas encomendas somente depois que as antigas forem fechadas.
 
qwert2:
Isto é o que acontece se o roteiro for simplesmente movido para a pasta dos especialistas. Funciona, mas não da maneira que deveria. O script cria 8 ordens pendentes, mas se você simplesmente salvá-lo na pasta Expert Advisors, ele cria 8 ordens pendentes após cada tick. Preciso que ele faça 8 novas encomendas somente depois que as antigas forem fechadas.
Você não está metido em nada - talvez uma galinha seja MELHOR (para pending)? :)))