[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 482

 
Urain писал(а) >>

Escribe una función bool() para comprobar si la diferencia entre el precio y el stoploop establecido es mayor que el StopLoss (de marketinfo)

entonces verdadero, de lo contrario falso.

Entonces, antes de abrir una orden debe comprobar si(function()) y abrir una orden.


¿Por qué lo necesito si he fijado un stop loss un 30% superior al de esta empresa de corretaje?

khorosh escribió >>

Los puntos 2 y 3 son erróneos. Derecha: Stop Loss y Take Profit para la compra a partir del Ask, Stop Loss y Take Profit para la venta a partir del Bid.
La comprobación es sencilla. Calcule la ganancia que obtendrá con su variante, en caso de que se haya disparado el takeprofit. No será igual al TakeProfit en puntos. En la variante propuesta, será exactamente igual.


Así que lo modifiqué como antes y obtuve el mismo resultado. Sólo dejé la normalización del precio.
Pero el error en el probador se mantiene y lo más interesante es que se repite no para todos los pedidos sino para algunos de ellos.
Tiene el error 4107 para 1 de cada 10 pedidos y devuelve los otros 9 sin errores.

 

Помогите пожфлуйста с индикаторами: 1-й чтобы не убирал разметку на графике. 2-й чтобы лини старших ТФ были внешними на младших и чтобы можно было задать отоброжение(после того как задаешь отоброжение сразу все нормально пока не перещелкнешь ТФ,после этого все линии младших ТФ на старших)нии младших ТФ на старших)

 
Me olvidé...
Archivos adjuntos:
macd.rar  7 kb
 
2
Archivos adjuntos:
multi.rar  9 kb
 
baltik писал(а) >>


¿Por qué lo necesito si he fijado un Stop Loss un 30% mayor que el Stop Level en mi empresa de corretaje?


Así que lo volví a hacer tal cual y el resultado sigue siendo el mismo, sólo he dejado la normalización de precios.
Pero el error en el probador se mantuvo y lo más interesante es que tengo errores en algunas órdenes y no en todas.
Para 1 de 10 dio error 4107, y los otros 9 se procesan sin errores.


Muéstrame el código, vamos a echarle un vistazo.
 
Noterday >>:
Народ, у меня проблема, причем никак не могу допетрить в чем дело, особо не пинайте.
Есть стандартный MACD, хочу в индикаторе отметить все пики столбцов (значками), вот код:
Таким образом я нарисовал все экстремумы в индикаторе. Всё ОК, НО!
Когда функцией Print я вывожу значения всех найденых пиков
то вот что выходит:
Я так понимаю что 2147483647 это нули или пустые значения?

Bueno, ¿alguien puede ayudar? :)

 
Noterday писал(а) >>

Bueno, ¿alguien puede ayudar? :)


El problema parece estar en las matrices MAX y MIN.
¿Los tienes vinculados a los buffers de los indicadores con SetIndexBuffer() ?

 
Sí, por supuesto :)
 
Noterday писал(а) >>
Sí, por supuesto :)


¿Utiliza la función IndicatorBuffers()?

 
Aquí está el código completo:
#property indicator_separate_window
#property indicator_buffers 4

#property indicator_color1 MediumPurple
#property indicator_color2 MediumPurple
#property indicator_color3 Green
#property indicator_color4 Red

#property indicator_width3 1
#property indicator_width4 1


extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;

double MMACD1[];
double SMACD1[];
double MAX[];
double MIN[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{

SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(2,119);
SetIndexArrow(3,119);

SetIndexDrawBegin(1,SMACD1);
IndicatorDigits(Digits+2);

SetIndexBuffer(0,MMACD1);
SetIndexBuffer(1,SMACD1);
SetIndexBuffer(2,MAX);
SetIndexBuffer(3,MIN);

IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");

return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

for(int i=0; i<limit; i++)
MMACD1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

for(i=0; i<limit; i++)
SMACD1[i]=iMAOnArray(MMACD1,Bars,SignalSMA,0,MODE_SMA,i);

for(i=0; i<limit; i++)
{
if(MMACD1[i+1] > MMACD1[i+2] && MMACD1[i+1] > MMACD1[i])
MAX[i+1] = MMACD1[i+1];

if(MMACD1[i+1] < MMACD1[i+2] && MMACD1[i+1] < MMACD1[i])
MIN[i+1] = MMACD1[i+1];
}

for(i=0; i<limit; i++)
{
if (MAX[i+1] != EMPTY_VALUE)
Print(MAX[i+1]);
}

return(0);
}
//+------------------------------------------------------------------+