Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 447

 
TarasBY:
¿Y dónde has leído eso de TimeDayOfWeek () (en el ejemplo)? :)))

A la derecha ;)

Me equivoqué, puedo ponerlo en forma de Time[] también, pero en el ejemplo es diferente y más conveniente ))))

 
Vitek2010:
No, no lo hace. Me explico - su foro es como una esperanza para el último reducto competente de prog. y la inserción de tamaño - así lo ve la escritura PERIOD_W1 pero ni el uso de tamaño ni el uso de datos fijos en forma de fechas consiguen ningún efecto deseado. He publicado una pregunta específica sobre el viernes - por cierto tu código no compila porque dice "versión" - propiedad desconocida, así que si no sabes cómo poner DayOfWeek y 5 (el número del viernes) en el código otras opciones no ayudarán .


if(TimeDayOfWeek(TimeCurrent())==5)   //Пятница
 
r772ra:



Por favor, pegue su variante en el código de mi indicador y compilarlo. y publicar el indicador corregido en texto claro no como un archivo. El camarada Venin me dio un código incomprensible y ninguna respuesta.

#property indicador_separar_ventana

#property indicator_buffers 1

#property indicator_color1 Lime

//--------------------------------------------------------------------

doble Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer;)

return(0);

}

// -------------------------------------------------------------------


int deinit()

{


return(0);

}

//--------------------------------------------------------------------

int inicio()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Viernes

if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])

Buffer[i] = 0;

si no

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){/si el movimiento actual y el anterior son crecientes

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Punto,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){// si el movimiento actual y el anterior son a la baja

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Punto,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//si el movimiento actual es creciente y el anterior es decreciente

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Punto,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){// si el movimiento actual es a la baja y el anterior es al alza

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Punto,0);}

}

return(0);

}

//---------------------------------------------------------------------

 
Vitek2010:


Por favor, pegue su variante en el código de mi indicador y compilarlo. y publicar el indicador corregido en texto plano no como un archivo. El camarada Venin me dio un código incomprensible y no dijo nada.


construir 509

//+------------------------------------------------------------------+
//|                                                    Vitek2010.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_buffers 1

#property  indicator_color1 Lime

//--------------------------------------------------------------------

double Buffer[];

//--------------------------------------------------------------------

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

// -------------------------------------------------------------------



int deinit()

{



return(0);

}

//--------------------------------------------------------------------

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------
 
Así no se puede definir el viernes en la historia, no sé.
 
TarasBY:
entonces, ¿qué tiene que ver la referencia a una biblioteca que cumple con los requisitos?


Porque sí:

TarasBY:
Vitya, no hay nada que resolver aquí - la persona quiere que las variables globales de un sandbox (EA con sus librerías) sean visibles en otro sandbox(librería compilada). :)))
 

Señores, podrían hacerme el favor de echar un vistazo a este trozo de código y ver si he introducido correctamente las condiciones de entrada de los 3 indicadores.

Ya que estoy aprendiendo muchas cosas que no entiendo.

E_ma=iMA(Symbol(),TimeFrame,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
Cloce =iClose(Symbol(),PERIOD_H1,1);

e_ma=iMA(Symbol(),timeframe,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
cloce =iClose(Symbol(),PERIOD_M15,1);

bbUP=iCustom(Symbol(),PERIOD_M5,"Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,1,0);
bbDOWN=iCustom(Symbol(),PERIOD_M5, "Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,2,0);

if(OrdersTotal()==0 && CountBuy()==0 && CountSell())
{
if(Cloce >E_ma && cloce >e_ma)
{
if(Ask<=bbDOWN)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Green);
if(ticket>0)
{
TP = NormalizeDouble(Ask + TakeProfit * Point, Digits);
SL = NormalizeDouble(Ask-StopLoss * Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
si no
if(Cloce <E_ma && cloce <e_ma)
{
if(Oferta>=bbUP)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red);
if(ticket>0)
{
TP = NormalizeDouble(Oferta - TakeProfit * Punto, Dígitos);
SL = NormalizeDouble(Bid+StopLoss* Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
}


return(0);

Corregidme si algo está mal, compila sin errores, pero en el testor las órdenes no se abren.Porque... donde un error en la condición.Cómo escribirla correctamente, no lo entiendo todavía.Alguien en los dedos que explique POR FAVOR!!!

 
r772ra:
Todo esto está mal, cómo definir el viernes en la historia, no lo sé.

Has eliminado la puesta a cero del ciclo semanal if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) y lo has sustituido por if(TimeDayOfWeek(TimeCurrent())==5) //Viernes quizás si estas funciones trabajan juntas de alguna manera podría funcionar. He probado cientos de cosas diferentes. creo que es fácil mostrar lecturas multitiempo con marcos temporales semanales en marcos temporales inferiores. sigo sin encontrar una solución.

 
Vitek2010:

Sí, has eliminado la puesta a cero del ciclo semanal if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])) y lo has sustituido por if(TimeDayOfWeek(TimeCurrent())==5) //Tal vez si estas funciones están de alguna manera juntas funcionen. He intentado cientos de cosas diferentes. Creo que es fácil mostrar lecturas multitiempo con el marco temporal semanal en los marcos temporales inferiores, pero todavía no puedo encontrar una solución.


He aquí una idea, abrir una nueva barra semanal - poner el buffer a cero, luego acumular los puntos
 
alsu:
Haz de Ticket un array Ticket[5], almacena los 5 tickets en él. Al cerrar, recorra todos los tickets como corresponde.

¿Cómo aplicarlo aproximadamente? Si en otras funciones parece que lo he entendido, pero con las órdenes y los arrays aún no lo tengo muy claro.
Razón de la queja: