[¡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 1010

 

Добрый день.Очень нужен советник,который будет лишь закрывать сделки.Дело в том,что вход в рынок может быть и обдуманный и с ясной головой и четкими правилами...А вот с выходом у многих-засада.Тут весь набор психологии: и нервы и надежда,и страх с жадностью.Думаю,что при входе по тренду,выход должен обеспечивать стохастик пересекающий уровень 50%.При пересечении сверху вниз должен закрывать бай-ордера,а при пересечении снизу вверх соответственно селл-ордера.

Por cierto, este asesor puede sustituir al estúpido stop-loss .....Creo que no sería muy difícil de escribir, y creo que sería útil.

 
Lim1:

¡Hola!

Tengo una pregunta: ¿dónde van los resultados de las pruebas (rentabilidad, número total de operaciones, etc.) y cómo podemos hacer que estos números se asignen a las variables (en el código) al final de las pruebas?

¿Cómo puedo hacer que estos números entren en las variables (en el código) después de las pruebas? ¡Gracias!


Usted escribe sobre la optimización... Seleccione la opción de optimización (pase) que desee, haga clic dos veces con el ratón y ya está... parámetros de este pase

Están en las "propiedades" del Asesor Experto. Seleccionas el periodo de pruebas con estos parámetros y sigues adelante... - Haz clic en "empezar".

 

Por favor, dame el código para calcular el factor de recuperación.

 

Buenas tardes,

No puedo decidir qué demo utilizar, muchos en el probador no ejecutan correctamente el algoritmo.

¿Cuál es su consejo?

¿Qué es un martín y un cierre?

 

что такое мартин и локирование?


Escriba una búsqueda en el sitio web. Martingala. El bloqueo es la apertura de una posición opuesta. Esto es sólo para darle tiempo a pensar en ello. Una posición anula a la otra y la cuenta queda como congelada.
 

¿Podría decirme si es posible mostrar los datos de los resultados de las pruebas en forma de alertas en el diario?

Por ejemplo, introduzca una variable que obtenga el valor de la cantidad total de operaciones (o el valor de la rentabilidad total...) al final de la prueba.

¿Cómo hacerlo?

La optimización está fuera de lugar...

 
Lim1:

¡Hola!

Tengo una pregunta: ¿dónde van los resultados de las pruebas (rentabilidad, número total de operaciones, etc.) y cómo podemos hacer que estos números se asignen a las variables (en el código) al final de las pruebas?

Puede encontrar una descripción detallada de este artículo en el Área Personal.

Ver Autoevaluación de los resultados de las pruebas de un asesor experto

 

hay dos líneas

La estrategia es la siguiente: cruzar las líneas arriba-compra, abajo-venta.

Decidí considerar una posibilidad: después de cruzar las líneas el precio baja hasta la línea con un largo período, comprar, colocar una orden de compra/venta.

Decidí hacerlo con la ayuda de banderas arriba/abajo,

pero no funcionó

if (SMA_1_0 > SMA_2_0 && SMA_1_1 < SMA_2_1) // Comprueba si se cruza hacia arriba
{

ClosePositions(); // si hay una orden - eliminar

A=1; //bandera hacia arriba
B=0; //abandono
}
si (A ==1 )

{
SL=Oferta - StopLoss*Punto; // Cálculo del SL abierto.
TP=Oferta + TakeProfit*Punto; // Cálculo del TP abierto.
Alert("Intentando abrir Buy. Esperando respuesta...");
Precio_H =SMA_2_0 + 10* Punto;
OpenPosition(Symbol(), OP_BUYLIMIT, Price_H,Lts, SL, TP);

if (Ticket > 0) // ha funcionado :)
{
Alerta ("Abrir orden de compra ",Ticket;)
A=0;
B=0;
volver;
}
}
//--------------------------------------------------------------------
if (SMA_1_0 < SMA_2_0 && SMA_1_1 > SMA_2_1) // Comprobación de cruce hacia abajo
{

CerrarPosiciones();

A=0; //bandera hacia arriba
B=1; //bandera hacia abajo
}
if (B == 1) // marca hacia abajo si el precio ha caído hasta la línea SMA
{
SL=Ask + StopLoss*Point; // Cálculo del SL abierto
TP=Ask - TakeProfit*Punto; // Cálculo del TP abierto.
Alert("Intentando abrir la venta. Esperando respuesta...");
Precio_L =SMA_2_0 - 10* Punto;
OpenPosition(Symbol(), OP_SELLLIMIT, Price_L,Lts, SL, TP);
if (Ticket > 0) // ha funcionado :)
{
Alerta ("Orden de venta abierta ",Ticket;)
A=0;
B=0;
return; // Salir de start()
}
}
//---------
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

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

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versión: 19.02.2008
//| Descripción : Cierre de posiciones a precio de mercado |
//+----------------------------------------------------------------------------+
//| Parámetros: |
//| sSímbolo - nombre del instrumento ("" - cualquier símbolo, |
//| NULL - símbolo actual) |
//| iOperación - operación (-1 - cualquier posición) |
//| iMagic - MagicNumber (-1 - cualquier magik) |
//+----------------------------------------------------------------------------+

void ClosePositions(string sSymbol = "", int iOperation = -1, int iMagic = -1) {
int i, k = PedidosTotal();

//if (sSymbol == "0") sSymbol = Symbol();
for (i = k - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol() == sSymbol || sSymbol == "") && (iOperación < 0 || Tipo de orden() == iOperación)) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (iMagic < 0 || OrderMagicNumber() == iMagic) ClosePosBySelect();
}
}
}
}
}

//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versión: 13.06.2007
//| Descripción : Cierre de una posición preseleccionada |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
doble página;

if (OrderType()==OP_BUY) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
OrderClose(OrderTicket(), OrderLots(), pp, Slippage);
}
if (OrderType()==OP_SELL) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
OrderClose(OrderTicket(), OrderLots(), pp, Slippage);
}
}

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versión: 13.06.2007
//| Descripción : Apertura de un puesto. Versión de la función para las pruebas de historia. |
//+----------------------------------------------------------------------------+
//| Parámetros: |
//| sy - nombre del instrumento ("" - símbolo actual) |
//| op - operación |
|| ll - lote
//| sl - nivel de parada |
//| tp - tomar nivel |
//| mn - MagicNumber |
//+----------------------------------------------------------------------------+
void OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int mn=0) {
doble página;
int err, ticket;

if (sy=="") sy=Símbolo();
si (op==OP_BUY) {
pp=MarketInfo(sy, MODE_ASK);
} si no {
pp=MarketInfo(sy, MODE_BID);
}
ticket=EnviarOrden(sy, op, ll, pp, Deslizamiento, sl, tp, "", mn, 0);
si (ticket<0) {
err=GetLastError();
Print("Error(",err,") open ",GetNameOP(op),": ",ErrorDescription(err));
Print("Ask=",Ask," Bid=",Bid," sy=",sy," ll=",ll,
" pp=",pp," sl=",sl," tp=",tp," mn=",mn);
}
}

//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru/ |
//+----------------------------------------------------------------------------+
//| Versión: 01.09.2005
//| Descripción : Devuelve el nombre de la operación comercial |
//+----------------------------------------------------------------------------+
//| Parámetros : ||
//| iOperación - identificador de la operación comercial ||
//+----------------------------------------------------------------------------+

string GetNameOP(int iOperation) {
switch (iOperación) {
case OP_BUY: return ("Comprar");
case OP_SELL: return ("Sell");
case OP_BUYLIMIT: return ("Buy Limit");
case OP_SELLLIMIT: return ("Sell Limit");
case OP_BUYSTOP: return ("Buy Stop");
case OP_SELLSTOP: return ("Sell Stop");
por defecto: retorno ("Operación desconocida");
}
}

 

¡Caballeros, amigos! Quién sabe, por favor comparte el enlace donde se pueden ver/sentir las fórmulas para resolver las ecuaciones de la progresión aritmética de segundo orden.

Por ejemplo:

En una progresión aritmética, las diferencias entre términos consecutivos son constantes. Si las diferencias no son constantes, pero las diferencias de las diferencias son constantes, entonces la progresión se llama progresión aritmética de segundo orden. Las progresiones aritméticas de orden superior se definen de forma similar. Por ejemplo, 2, 6, 12, 20, 30, ..., n es una progresión aritmética de segundo orden porque las diferencias de 4, 6, 8, 10, ..., n forman una progresión aritmética con d = 2.

Aquí necesito fórmulas de cálculo para encontrar el número de miembros de dicha progresión... He buscado por todo Internet, pero sólo hay matemáticas simples... :((((

 
artmedia70:

¡Caballeros, amigos! Quién sabe, por favor comparte el enlace donde se pueden ver/sentir las fórmulas para resolver ecuaciones de progresión aritmética de segundo orden.

Buscó en
Razón de la queja: