Operar con spreads en Meta Trader - página 16

 

Una pregunta más para los presentes. Dado que el Asesor Experto en el tema indicado calcula dos instrumentos, esta pregunta será relevante.

Por ejemplo. Si tomamos dos instrumentos en tándem, cada uno de ellos comienza en un momento diferente.

(Se negocia en diferentes plataformas o por otros motivos)

Las materias primas BRN y CL (en mt4 BR), por ejemplo, suelen comenzar diariamente, con 2-3 horas de diferencia.

Igual (dax+futsi), -diferencia horaria.

En estos casos, el cálculo del diferencial medio entre instrumentos en marcos temporales pequeños será a veces muy incorrecto. Sobre todo si la sesión se ha abierto con un vacío.

Sería deseable comprobar -en qué medida coinciden en el tiempo- los últimos compases. Esas últimas barras - sobre las que se calcula el spread medio - por ejemplo, en la misma función de Fduch - CalculateAvarageSpread(Symbol_1,Symbol_2,0, NBars).

En otras palabras, quiero mostrar en mi comentario, - ¿cuántas últimas barras de ambos símbolos en el marco de tiempo especificado coinciden?

¿Podría decirme cómo hacerlo?

 
rid >>:

Ещё один вопрос присутствующим. Поскольку советник в заявленной теме обсчитывает два инструмента, то этот вопрос будет актуален.

Например. Если мы берем в тандем два инструмента, - каждый из которых начинает работу в разное время.

(Торгуются на разных площадках или по др. причинам)

Сырьевые BRN и CL (в мт4 БР), например, ежедневно начинают работу зачастую, с разницей в 2-3 часа.

Тож самое (дакс+футси), -часовая разница.

В таких случаях расчет среднестат. спреда между инструментами на малых тф иногда будет оч. некорректным! Особенно, если сессия открылась гэпом!

Хотелось бы предусмотреть проверку, - насколько по времени совпадают последние бары. Те последние бары, - по которым ведется расчет среднестатич. спреда - например, в той же функции от Fduch-а - CalculateAvarageSpread(Symbol_1,Symbol_2,0, NBars)

Иначе говоря, хотелось хотя бы отобразить в комменте, - сколько последних баров обоих инструментов на заданном тф совпадают по времени ?

Подскажите, как это сделать ?

¿Qué quiere decir con "cuánto tiempo coinciden las ...barras"? En mi función, tomo las dos barras cuya apertura coincide en el tiempo para calcular el spread:

 int symb2Shift = iBarShift( Symbol_2, Timeframe,iTime( Symbol_1, Timeframe, k),true);

Si lo llama en el marco temporal M1, puede estar seguro de que el spread se calculará con pares de barras, que coinciden entre sí dentro de un minuto. Otra cuestión es si hay que utilizar iClose o iOpen para calcular el spread. De cualquier manera, no me siento seguro de la corrección, así que ahora estoy calculando los spreads en base a los datos de los ticks recogidos en tiempo real (coincidiendo con el segundo más cercano).

 
Fduch писал(а) >>

¿Qué quiere decir con "cuánto tiempo coinciden las ...barras"? En mi función, tomo las dos barras cuya apertura coincide en el tiempo para calcular el spread:

Si lo llama en el marco temporal M1, puede estar seguro de que el spread se calculará con pares de barras que coincidan entre sí dentro de un minuto. Otra cuestión es si hay que utilizar iClose o iOpen para calcular el spread. En cualquier caso, no me siento seguro de la corrección, por lo que actualmente estoy calculando los diferenciales basándome en los datos de los ticks recogidos en tiempo real (coincidiendo con el segundo más cercano).

Exactamente: la forma más precisa de recoger el historial de propagación usted mismo de las garrapatas. Con un tramo, se puede contar por apertura/cierre, pero están desincronizados, aunque con una frecuencia de tics suficiente no deberían diferir mucho en el tiempo. Pero de ninguna manera alta/baja - aquí el error es máximo.

 
getch >>:

Хочется все же разобраться в терминологии.

Что такое ассет, коинтеграция и корреляция?

Activo, cointegración, correlación -> Google.

Aconsejaría encarecidamente no usar la Wikipedia en este tema: artículos absolutamente lamentables. Sobre el comercio de pares, en lugar de un artículo, es sólo un anuncio de un sitio inútil.

Aconsejo encarecidamente utilizar buenos libros de texto, por ejemplo, Carol Alexander "Market models".

 

Me temo que estoy siendo intrusivo. Pero una pregunta más.

Estoy tratando de hacer la posibilidad de probar (en el probador) el Asesor Experto utilizando el método indicado en la rama. Se han abierto al menos operaciones del símbolo actual, es decir, del que está en el gráfico en el que está instalado el EA.

La imitación virtual de los oficios del segundo.

Sin embargo, he descubierto que si el precio OCHL del segundo instrumento en el probador se devuelve "poco o principalmente", entonces ni siquiera se devuelven las Ofertas y Demandas actuales del segundo instrumento - ¡se muestran ceros!

Comentario(Pregunta_Tiker2,"_",Oferta_Tiker2);

¿Se supone que debe ser así? ¿O es posible encontrar estos precios de alguna manera?

 
Reshetov >>:

Запросто можно залезть в свойства зацикленного советника. Временно отключить кнопку "Советники" и подредактировать свойства. Самое главное, потом не забыть обратно включить кнопку.

Gracias :)

rid escribió(a) >>

Estoy intentando que se pueda probar (en el tester) el EA utilizando el método indicado en la rama. Si sólo para abrir operaciones de uno, - el instrumento actual, es decir, el que está en el gráfico de la que se ha instalado el EA.

No tiene ningún efecto.

Sin embargo, he descubierto que si el precio OCHL del segundo instrumento de la "cobertura" en el probador se devuelve "poco o principalmente", entonces ni siquiera se devuelven las Ofertas y Demandas actuales del segundo instrumento - ¡se muestran ceros!

Compruebe el historial y el error después de la función.

 
TheXpert >>:


Проверьте наличие истории и ошибку после функции.


La historia está presente.

//Валютная версия
extern string  Symbol_1 = "USDJPY";
extern string  Symbol_2 = "EURJPY";
///----------------------
int start()
{
//--------Задаем текущие цены инструметов -- 
double Ask_Tiker1 = MarketInfo( Symbol_1,MODE_ASK);
double Bid_Tiker1 = MarketInfo( Symbol_1,MODE_BID); 
double Ask_Tiker2 = MarketInfo( Symbol_2,MODE_ASK);
double Bid_Tiker2 = MarketInfo( Symbol_2,MODE_BID);

Comment( Ask_Tiker1,"_", Bid_Tiker1, "\n",
        Ask_Tiker2,"_", Bid_Tiker2, "\n",
"Ошибка  = ",GetLastError());

Aparece el error 4059

ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE 4059 Función no permitida en modo test

Esto es extraño. Al fin y al cabo, tanto la primera como la segunda herramienta se establecen a través de Marketinfo. El primer instrumento. - se muestra normalmente (92_91.98 - USDJPY), pero el EURJPY no.

Y si coloco el EA en el segundo instrumento, es decir, en el gráfico de EURJPY - por el contrario, el primer símbolo da ceros en el comentario, pero el precio del segundo - EURJPY - se muestra normalmente
.


 

rid писал(а) >>

Aparece el error 4059

Puede que te haya confundido. MarketInfo es "seguro", es decir, no genera errores por el camino.
 
TheXpert >>:


Бесполезно.


Creo que no es completamente inútil. Si el trabajo del Asesor Experto se realiza mediante la apertura de precios, -incluyendo el cierre de posiciones-, por ejemplo en marcos temporales pequeños (M1-M5). Entonces podemos obtener una prueba aproximada.

Al fin y al cabo, los precios de OHLC Marketinfo suelen ser devueltos por el probador. Significa que podemos obtener (casi) un beneficio real de un símbolo a precios OPEN y calcular un "beneficio virtual" del otro. Y luego es viceversa.

¿No es así?

Y obtendremos una apertura y un cierre de posiciones bastante correctos del símbolo actual durante cada una de esas ejecuciones.

 

rid писал(а) >>

¿No es así?

No. No olvides los saltos de barra. Incluso si logra implementar un Asesor Experto para un probador, las entradas para los diferentes símbolos no estarán sincronizadas debido a las barras perdidas.

Y en las barras perdidas probablemente obtendrás barras en lugar de precios.

No podemos hacer un bucle o trabajar por temporizadores en el probador. Así que es

TheXpert escribió :>>

Es inútil.