[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 19
Ayudar a ajustar el script que significaría abrir un acuerdo inmediatamente, al precio actual del mercado. Un chet, ya estoy al vapor Distancia de los peces en 5 pips no está satisfecho, y por lo que sería al menos con una desviación en el intercambio.
Índice del valor recibido del búfer del indicador (desplazamiento relativo a la barra actual en el número de períodos especificado hacia atrás).
En el indicador Fractales. Si pienso correctamente - el indicador muestra el valor del extremo entre cinco barras con la condición de que los máximos de dos barras anteriores y dos siguientes (en caso de un fractal hacia arriba) son más pequeños (aunque el "pajarito" de un fractal se muestra en el gráfico también cuando el extremo de la barra más a la izquierda de esos cinco = extremo ......, no más pequeño que él). Entonces, ¿por qué cambiar? ¿Qué se mostrará si el desplazamiento no es igual a 3 sino a 2 o a 5?
Hice este código para entrar en el mercado después de la primera ruptura fractal después de la ruptura de la MA. Pero al probarlo, no abre las operaciones en todas partes, aunque parece que se supone que lo hace. No puedo entender qué es lo que está mal? En modo real (al comprobar en M1 no encuentro el error).
externint Period_MA = 5, // Период расчётной МА
PERIOD=1, // Период текущего графика (таймфрейм)
MODE=3, // Метод усреднения из методов скользящего среднего
PRICE_TYPE=0, // Используемая цена из ценовых констант
Прибыль=10,
Ограничение=55;
double
upfractal,
dwfractal,
SL[10001]={0,,10000},
TP[10001]={0,,10000};
bool Двверх=false,
Дввниз=false,
Сделкавверх=false,
Сделкавниз=false;
int A, // Переменная массива вверх
B, // Переменная массива вниз
BarTime, // Время текущего бара
ticketup, // Ордер вверх
ticketdown, // Ордер вниз
Tвверх, // Время сделки вверх
Tвниз; // Время сделки вниз;color вверх = SpringGreen, // Цвет сделки вверх
вниз = Red; // Цвет сделки вниз int start()
{
string Symb=Symbol(); // Финанс. инструментdouble Lot=0.01; // Лотif(BarTime!=Time[0]) // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
{
double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
double MA_4 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 4);
double MA_5 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 5);
double MA_6 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 6);
double MA_7 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 7);
double MA_8 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 8);
//--------------------------------------------------------------------if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
{
Двверх=true;
Alert("Двверх");
Дввниз=false;
Сделкавниз=false;
dwfractal=0;
upfractal=0;
}
if(Двверх==true)
{
upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
Alert("upfractal вначале = ",upfractal);
}
if(NormalizeDouble(MA_8,Digits)<NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
&& NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз
{
Дввниз=true;
Двверх=false;
Alert("Дввниз");
Сделкавверх=false;
upfractal=0;
dwfractal=0;
}
if(Дввниз==true)
{
dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3);
Alert("dwfractal вначале = ",dwfractal);
}
BarTime=Time[0];
}else// На каждый тик
{
Alert("upfractal на тиках = ",upfractal,", Bid = ", Bid);
if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
{
Alert("upfractal = ",upfractal, ", Ask = ",Ask);
Tвверх=Time[0];
while(true) // Цикл открытия орд.
{
A++;
SL[A]=Bid-Ограничение*Point;
TP[A]=Bid+7*Point+Прибыль*Point;
ticketup=OrderSend(Symb, OP_BUY, Lot, Ask,0, SL[A], TP[A],NULL,A,0,вверх); // Ордер вверхint Error=GetLastError();
switch(Error) // Преодолимые ошибки
{
case6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
RefreshRates(); // Обновим данныеSleep(1); // Задержка в цикле до нового тикаcontinue; // На след. итерацию
}
break; // Выход из цикла
}
Сделкавверх=true;
}
Alert("dwfractal на тиках = ",dwfractal,", Bid = ", Bid);
if (Дввниз==true && dwfractal !=0 && Bid < NormalizeDouble(dwfractal-1*Point,Digits) && Tвниз!=Time[0] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
{
Alert("dwfractal = ",dwfractal, ", Bid = ",Bid);
Tвниз=Time[0];
while(true) // Цикл открытия орд.
{
B++;
SL[B]=Bid+Ограничение*Point;
TP[B]=Bid-4*Point-Прибыль*Point;
ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
Error=GetLastError();
switch(Error) // Преодолимые ошибки
{
case6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
RefreshRates(); // Обновим данныеSleep(1); // Задержка в цикле до нового тикаcontinue; // На след. итерацию
}
break; // Выход из цикла
}
Сделкавниз=true;
}
}
//----return(0);
}
//+------------------------------------------------------------------+
Y hasta que no funcione en el probador, no tiene sentido utilizarlo para la optimización con un error. ¿Cuál es el error...?
Leonid82, High[1] es el precio alto de la primera vela. Para conseguirlo, sólo tienes que hacer este script. Y este precio no se obtiene del Asesor Experto, sino del terminal.
¡Enhorabuena a usted!
Hay que dar la enhorabuena. Aunque un disparo al aire no hace daño a nadie.
Hay que dar la enhorabuena. Aunque un disparo al aire no hace daño a nadie.
Víctor, ¿se te ha caído el Skype o se te ha acabado la conexión? ¿Qué es la ZZ?
Sí, estoy diciendo que tal vez debería hacer un zapper especial. No es mi Skype el que está muriendo. Te tengo en verde.
No hay historia o hay errores en la historia
¡Buenas noches!
Parece que no puedo dar sentido a la
En el indicador Fractales. Si pienso correctamente - el indicador muestra el valor del extremo entre cinco barras con la condición de que los máximos de dos barras anteriores y dos siguientes (en caso de un fractal hacia arriba) son más pequeños (aunque el "pajarito" de un fractal se muestra en el gráfico también cuando el extremo de la barra más a la izquierda de esos cinco = extremo ......, no más pequeño que él). Entonces, ¿por qué cambiar? ¿Qué se mostrará si el desplazamiento no es igual a 3 sino a 2 o a 5?
Hice este código para entrar en el mercado después de la primera ruptura fractal después de la ruptura de la MA. Pero al probarlo, no abre las operaciones en todas partes, aunque parece que se supone que lo hace. No puedo entender qué es lo que está mal? En modo real (al comprobar en M1 no encuentro el error).
Y hasta que no funcione en el probador, no tiene sentido utilizarlo para la optimización con un error. ¿Cuál es el error...?Leonid82 24.01.2011 19:51
Hola, tengo un Asesor Experto que trabaja con EURUSD. ¿Cómo puedo obtener High[1] en GBPUSD por ejemplo?
Gracias por su ayuda.
Leonid82, High[1] es el precio alto de la primera vela. Para conseguirlo, sólo tienes que hacer este script. Y este precio no se obtiene del Asesor Experto, sino del terminal.