Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Aquí está la función de cálculo del lote dinámico para ambos instrumentos, utilizando el código neoclásico.
Para utilizar en los EA. Compruébalo, ¿está bien?
El parámetro de riesgo es el porcentaje que arriesgamos.
Parámetros:
extern string Symbol_1 = "6EM0";
extern string Symbol_2 = "6SM0";
extern double Risk = 10;
string lotsinfo;
double Lots_1; double Lots_2;
Código:
void CountLots()
{
//расчет соотношения лотов по инструментам
double ynax=MarketInfo(Symbol_1, MODE_TICKVALUE)/MarketInfo(Symbol_2, MODE_TICKVALUE)*
(iOpen(Symbol_1,0,0)/MarketInfo(Symbol_1, MODE_TICKSIZE))/(iOpen(Symbol_2,0,0)/MarketInfo(Symbol_2, MODE_TICKSIZE));
double minx=0, miny=0, mindelta=9999;
for (double x=0.01; x<=1; x+=0.01)
{
for (double y=0.01; y<=1; y+=0.01)
{
double delta=MathAbs(y/x-ynax);
if (delta<mindelta)
{
minx=x;
miny=y;
mindelta=delta;
}
}
}
double LotsS1=minx;
double LotsS2=miny;
//расчет динамического лота с заданным параметром Risk
string Symb1=Symbol_1;
string Symb2=Symbol_2;
double Min_Lot1=MarketInfo(Symb1,MODE_MINLOT);// Мин. размер лота
double Min_Lot2=MarketInfo(Symb2,MODE_MINLOT);// Мин. размер лота
double Step1 =MarketInfo(Symb1,MODE_LOTSTEP);//Шаг изменен лотов
double Step2 =MarketInfo(Symb2,MODE_LOTSTEP);//Шаг изменен лотов
double Free =AccountFreeMargin(); // Свободн средства
double One_Lot1=MarketInfo(Symb1,MODE_MARGINREQUIRED);//Стоим.1 лота
double One_Lot2=MarketInfo(Symb2,MODE_MARGINREQUIRED);//Стоим.1 лота
double Lot1=MathFloor(Free*Risk/100/One_Lot1/Step1)*Step1;// Лоты
double Lot2=MathFloor(Free*Risk/100/One_Lot2/Step2)*Step2;// Лоты
//приведение размера лотов Lots_1/Lots_2 к нужному соотношению LotS1/LotS2, учитывая Lot1 и Lot2
if (LotsS1<=LotsS2)
{
Lots_1=Lot1; //меньший по соотношению оставляем как есть
Lots_2=Lot1/LotsS1*LotsS2; //больший по соотношению нормализуем
}
else
{
Lots_2=Lot2; //меньший по соотношению оставляем как есть
Lots_1=Lot2*LotsS1/LotsS2; //больший по соотношению нормализуем
}
//проверяем возможность торговать
if ((Lots_1<Min_Lot1)||(Lots_2<Min_Lot2))
string lotsalert=StringConcatenate("Нет средств для торговли с Risk=",Risk,"%.\n");
else lotsalert="";
//выводим информацию в строку
lotsinfo=StringConcatenate(lotsalert,
"Risk = ",Risk,"%. Лот ",Symbol_1," = ",Lots_1,", Лот ",Symbol_2," = ",Lots_2,".\n");
//Comment(lotsinfo);
}
Insertado. Gracias.
Parece que funciona bien.
Вставил. Благодарю!
Вроде нормально работает!
Aha... Debemos normalizar el tamaño del lote con los incrementos de lote del instrumento... Porque el lote 0.1831 no está funcionando... Bien...
Ага... Надо нормализовать размерность лота с шагом лота по инструменту... А то лот 0,1831 не тру... Щас...
Este bloque debe hacerse así, y el número de lotes será correcto.
//приведение размера лотов Lots_1/Lots_2 к нужному соотношению LotS1/LotS2, учитывая Lot1 и Lot2
int Step;
if (LotsS1<=LotsS2)
{
Step = MathCeil(MathAbs(MathLog(Step2)/MathLog(10)));
Lots_1=Lot1; //меньший по соотношению оставляем как есть
Lots_2=NormalizeDouble((Lot1/LotsS1*LotsS2),Step); //больший по соотношению нормализуем
}
else
{
Step = MathCeil(MathAbs(MathLog(Step1)/MathLog(10)));
Lots_2=Lot2; //меньший по соотношению оставляем как есть
Lots_1=NormalizeDouble((Lot2*LotsS1/LotsS2),Step); //больший по соотношению нормализуем
}
Ага... Надо нормализовать размерность лота с шагом лота по инструменту... А то лот 0,1831 не тру... Щас...
Hola a todos, observador del ramo desde hace tiempo, para el dimensionamiento de los lotes sugiero una opción un poco diferente:
Tampoco es un mal enfoque. Sólo que no has mostrado - cómo calcular programáticamente
(Mediana(símbolo_1) y Mediana(símbolo_2).
Por cierto, ¿cómo se calcularían los lotes tándem GCG0+UMH0 según su algoritmo?
Кстати, как по вашему алгоритму получились бы лоты тандема GCG0+УMH0 ?
y sin embargo mi antiguo método de sincronización de lotes es más correcto
introduzca el lote base y dos instrumentos en la configuración, lance el script en el gráfico y ya está...
Para reflexionar: los fondos cotizados (ETF)
Podría ser interesante hacerse con este fondo:
MKT VCTR RUSIA SBI