Spread trading dans Meta Trader - page 48

 
Voici un script qui affiche immédiatement les informations nécessaires pour que l'outil calcule le coefficient manuellement, maintenant c'est une question de cinq minutes pour écrire le code pour le calcul automatique.
Dossiers :
dvcg.mq4  1 kb
 
forex-k >>:

спасибо!

я считаю так:

Стоимость пункта ( Инструмент1 ) = Размер минимального изменения цены инструмента в валюте депозита / ( Минимальный шаг изменения цены инструмента в валюте котировки /Размер пункта в валюте котировки)

Стоимость пункта ( Инструмент2 ) = Размер минимального изменения цены инструмента в валюте депозита / ( Минимальный шаг изменения цены инструмента в валюте котировки /Размер пункта в валюте котировки)


далее смотрим стоимость пункта какого инструмента больше, допустим Инструмент1


коф= Стоимость пункта Инструмент1/ Стоимость пункта Инструмент2


lot1( Инструмент1 )=lot базовый

lot2( Инструмент2 )=lot базовый*коф

Supposons que nous ayons de l'or et de l'argent


base du lot=0.1 ;


Valeur du point ( GCG0 ) =10/(0.1/0.1)=10 ;

Valeur du point ( SIH0 ) =25/(0.005/0.001)=5 ;


kof= 10/5=2 ;


lot1( GCG0 )=0.1 ;

lot2( SIH0 )=0.1*2=0.2 ;

 

OK. Merci. Nous allons nous en occuper.

Une autre question pour tous ceux qui peuvent y répondre.

Je suis actuellement en train de tester un EA suivant la méthodologie déclarée, qui est capable de fonctionner dans le testeur - avec des transactions virtuelles simulées sur le second instrument.

Cela fonctionne bien, mais il y a un problème d'affichage du commentaire.

Lorsque l'on active le commentaire, les problèmes commencent.


Parfois, cela fonctionne bien.

Mais le plus souvent, le journal (lorsque le commentaire est activé) commence à afficher la division par zéro - ZERO DIVIDE

Après analyse, nous avons réussi à découvrir que cela apparaît en raison de la division

à /POINT_1 et /POINT_2, à plusieurs endroits dans le code du commentaire où

double POINT_1 = MarketInfo( Symbol_1,MODE_POINT); 
double POINT_2 = MarketInfo( Symbol_2,MODE_POINT); 
Je ne peux pas me passer de ces actions car sinon je ne peux pas obtenir les profits/pertes actuels des transactions virtuelles sur le second instrument en pips.

Quelqu'un a-t-il rencontré ce problème ?

Comment puis-je éliminer leZERO DIVIDE ici ?

 

Le sujet m'intéresse, et avant de passer à la mise en œuvre pratique de l'idée, je me permettrai quelques considérations théoriques :


  • La corrélation des instruments n'est pas constante, vous devez le comprendre. Même dans une paire comme le porc et le bœuf, un événement peut se produire qui inversera la corrélation à -1 (par exemple, en cas d'épidémie de grippe porcine, le prix du porc baissera et le prix du bœuf, en tant que concurrent, augmentera) et nous pouvons subir des pertes illimitées, car nous entrons à contre-courant de la tendance sur le spread, dans l'espoir qu'il baisse. Ce problème peut être résolu en constituant un portefeuille composé de nombreuses paires non corrélées et en pensant au contrôle des pertes (ne pas trop s'asseoir).
  • Comme Timbo l'a souligné à juste titre, nous devons évaluer la stationnarité de l'écart. En gros, nous devrions évaluer la dynamique de MA et RMS à partir de l'écart. Ils devraient être constants (+/-) sur l'ensemble de l'historique. Ou alternativement, nous pouvons tracer la distribution des valeurs de spread - idéalement, nous devrions obtenir une gaussienne avec le sommet à 0. Tout cela devrait être utilisé pour automatiser/accélérer la sélection des paires dans le portefeuille.
  • Je ne suis pas tout à fait sûr que l'approche de forex-k soit correcte en termes de construction de spread (soustraire le muving du prix). Bien sûr, cela ramène les prix à un dénominateur commun, mais cela ne tient pas compte du poids des points. Par exemple, une variation de 5 % pour un instrument correspond à 300 pips et pour un autre à 600. Dans ce cas, nous obtiendrons un écart énorme, mais il n'y aura pas de retour attendu à 0 (puisque le pourcentage de changement est le même). A mon avis, il est plus intéressant de dessiner le spread à partir de Close[i]/Close[i+n], nous pourrons alors estimer le spread en variation relative (%).
  • Quant au calcul du lot, il ne faut pas seulement tenir compte de la valeur du point, mais aussi de la volatilité des instruments pour égaliser les mouvements qui sont identiques en %.
Pardonnez-moi d'en dire trop, mais je préfère réfléchir un peu avant de me précipiter dans l'action :-)
 
neoclassic >>:

Я заинтересовался темой, и перед тем, как приступить к практической реализации идеи, позволю себе пару-тройку теоретических соображений:


  • Я не совсем уверен что подход forex-k верен в плане построения спреда (вычитание мувинга из цены). Конечно это позволяет привести цены к общему знаменателю, но не учитывает вес пункта. Например изменение на 5% для одного инструмента составит 300 пунктов, а для другого - 600. В этом случае мы получим здоровенный спред, но ожидаемого возврата к 0 не будет (т.к. в % изменились одинаково). На мой взгляд интереснее строить спред от Close[i]/Close[i+n], тогда мы сможем оценивать спред в относительных (%) изменениях.

J'en ai tenu compte dans les nouvelles versions de l'indicateur, et j'utilise également des coefficients d'égalisation

 
neoclassic >>:

корреляция инструментов - штука не постоянная, это надо понимать. Даже в такой паре как свинина и говядина может наступить событие, которое обратит корреляцию до -1....

A propos, une situation curieuse se déroule actuellement sur le marché des céréales !

Blé, maïs, haricots ... -

Tendance à la baisse lente. Il est intéressant de noter que les lignes des instruments négociés ont convergé presque au même point !
Qu'est-ce que cela pourrait signifier d'un point de vue fondamental ?
ZC+ZW+ZS+ZM.
Ça n'arrive pas si souvent dans l'histoire.

 
rid писал(а) >>

Je suis en train de tester un EA selon la méthodologie indiquée, capable de fonctionner dans le testeur - avec des transactions virtuelles simulées sur le deuxième instrument.

Cela fonctionne bien, mais il y a un problème d'affichage du commentaire.

Quelqu'un a-t-il rencontré ce problème ?

Comment réparer le ZERO DIVIDE ?

Dans le testeur par le symbole de quelqu'un d'autre MarketInfo loin pas toujours affiche ce dont j'ai besoin, seulement en ligne fonctionne bien.

 

Trouvé commentaire officiel :

Modérateur
5084
stringo 25.03.2009 10:19

Combien de fois puis-je me répéter et écrire ? MarketInfo dans le testeur ne fonctionne pas ! Sauf pour quelques requêtes.

 

Je suppose toujours que ce problème particulier n'a rien à voir avec MarketInfo.

Le voici maintenant - fait - comme décrit ici :

erreur "zero divide" .......... qui est le fou ????

et cela semble fonctionner jusqu'à présent (whew, whew, whew).

 

Oui, - voir ces fonctions MarketInfo

double Ask_1 = MarketInfo(Symbol_1,MODE_ASK) ;
double Bid_1 = MarketInfo(Symbol_1,MODE_BID) ;
double Ask_2 = MarketInfo(Symbol_2,MODE_ASK) ;
double Bid_2 = MarketInfo(Symbol_2,MODE_BID)
double POINT_1 = MarketInfo(Symbol_1,MODE_POINT) ;
double POINT_2 = MarketInfo(Symbol_2,MODE_POINT) ;
C'est ainsi que mon travail d'"arbitre" s'affiche maintenant dans l'exécution du testeur visuel :

(dans le travail - ouvrir la deuxième couverture : acheter BRN + vendre CL, - et le cours actuel des transactions - est affiché - à la fois individuellement, - et cumulativement : -112 +101 = 11)

Il reste à synchroniser le travail de l'EA par barres. Comme ces deux instruments sont souvent négociés à des moments différents.