[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 288

 
Roger:

Por alguna razón, me sale bien (excepto el alfabeto cirílico)

¿Está bien? Es el mismo fallo que el mío.

 

Sí, así que es un fallo.

He encontrado un error. En la biblioteca de esta función en la línea

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 };
debes borrar el cero en cada uno de los números 13, 14 y 15.


Ahora correctamente.

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
 
¡¡¡Rogermuchas gracias!!!Todo ha funcionado. Ahora funciona como debería.
 

Hola, ¿alguien puede decirme cómo hacer un EA a partir de un script?

 

Hola. No soy bueno en la programación, no puedo encontrar un error, el EA se ejecuta en el probador, pero no hay operaciones abiertas. ¿Por qué? Por favor, ayuda.

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

/*
extern int vltbars=10; //número de barras para el cálculo de la volatilidad
extern double deliter=1.5; //Divisor de volatilidad actual
extern double stoppercent=0.50; //de 1 a 99

extern bool timecontrol=false;
cadena externa starttime = "07:00:00";
cadena externa stoptime = "17:00:00";
*/

extern double Lots=0.1;

int startb,starts;

doble nivel;
int init()
{
stoplevel=MarketInfo(Symbol(),MODE_SPREAD)+MarketInfo(Symbol(),MODE_STOPLEVEL);
}


int inicio()
{int comprar,vender;

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

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

double macdcurr =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)
{
Print("COMPRA Oferta: "+Oferta+" sl: "+sl+" Beneficio: "+tp);
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-sl*Point,Ask+tp*Point, "FORTRADER.RU",0,0,Red);
startb=0;
}
if(ema1<wma1 && ema1<wma2 && starts==1 && (macdcurr<0 || macdcurr<macdlast)&& sell==0)
{
Print("VENDER Oferta: "+Oferta+" sl: "+sl+" TakeProfit: "+tp);
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+sl*Point,Bid-tp*Point, "FORTRADER.RU",0,0,Red);
comienza=0;
}

return(0);
}


 
qwert2:

Hola, ¿alguien puede decirme cómo hacer un EA a partir de un script?

Póngalo en la carpeta EA.
 
Zhunko:
Póngalo en la carpeta de expertos.

El script realiza la acción, si solo lo mueves a la carpeta de expertos realiza la acción cada tick, en lugar de iniciar una nueva acción solo después de que la anterior haya terminado.

 
qwert2:

El script realiza la acción, si solo lo mueves a la carpeta de Expertos realiza la acción cada tick, en lugar de iniciar una nueva acción solo después de que la anterior haya terminado.

No lo entiendo. ¿De qué se trata? ¿Es una pregunta?
 
Zhunko:
No lo entiendo. ¿De qué se trata? ¿Es una pregunta?

Escribí esto acerca de lo que sucede si solo mueves el script a la carpeta de expertos. Funciona, pero no de la manera que necesitamos. El script crea 8 órdenes pendientes. Si lo guardamos en la carpeta de Asesores Expertos, crea 8 órdenes pendientes después de cada tick. Lo necesito para hacer 8 nuevos pedidos sólo después de cerrar los antiguos.
 
qwert2:
Esto es lo que sucede si el script se mueve simplemente a la carpeta de expertos. Funciona, pero no como debería. El script crea 8 órdenes pendientes, pero si lo guardas en la carpeta de expertos, crea 8 órdenes pendientes después de cada tick. Lo necesito para hacer 8 nuevos pedidos sólo después de cerrar los antiguos.
¿No te mezclas en nada - tal vez un pollo sería un MEJOR (para la espera)? :)))