Dernieres News
fren
Accueil >> Forum

activtrades

Forum

Money Management  

Page 3 / 3 Retour
  RSS

bagi
 bagi
BoursiKoteur Confirmé
Inscription :il y a 6 années 
Posts : 147
3 février 2013 16 h 43 min  

2 fichiers Excel de MM, le second est avec graphique dynamique

Source : Forex or not forex http://www.forex-or-not-forex.com/index.php/forum/8-money-management/25-fichier-excel-de-la-vide o"> http://www.forex-or-not-forex.com/index.php/forum/8-money-management/25-fichier-excel-de-la-video

pas encore testé
Bagi!

lien avec ce dégueu de winzip[attachment=0:1ca4iddu]MM.zip[/attachment:1ca4iddu]


RépondreQuote
bagi
 bagi
BoursiKoteur Confirmé
Inscription :il y a 6 années 
Posts : 147
3 février 2013 17 h 28 min  

MAJ avec liaisons MT4 pour Px PIP


RépondreQuote
noberry
Nouveau Membre
Inscription :il y a 5 années 
Posts : 1
11 février 2013 12 h 31 min  

Merci, je l'ai téléchargé moi aussi je suis sûr que cela m'aidera a mieux gérer sur le fonctionnement de la bourse. Je ne trade pas encore en réel mais ca m'aidera a mieux simuler.


RépondreQuote
bagi
 bagi
BoursiKoteur Confirmé
Inscription :il y a 6 années 
Posts : 147
7 juin 2013 10 h 34 min  

Réalisez vos premiers algorithmes simples sous Excel / Screenshots et téléchargements ici : http://turtlesignal.e-monsite.com/pages/excel-vba.htm l"> http://turtlesignal.e-monsite.com/pages/excel-vba.html

L'appli Turtle Signal : VBAProject(Journal dynamique v0.1.xls)

Avant-propos

Depuis que j'ai découvert MetaTrader 4 de MetaQuotes (plateforme pour les CFDs) et certains programmeurs (dont Stéph de boursikoter.com), j'ai comme eux voulu réaliser mes propres indicateurs techniques et robots de trading. La programmation en Mql4 bien qu'essentiel est indigeste au premier abords. Comme j'étais parti avec Excel en VBA, il a fallu construire une façon efficace de communiquer entre Excel et MT4. A l'accoutuméé, je détourne quelque peu les indicateurs initiaux pour arriver à mes fins. On peut appeler ça du bidouillage car biensur je n'ai jamais trouvé d'exemple complet sur ce sujet. Puis, les gens, veulent bien vous aider, mais ca reste à dose homéopatique. Au cours de mes recherches j'ai récolté des bouts de codes qui me parraissaient utiles et les ai adaptés pour faire une application de A à Z. Le code est libre et est non protégé pour permettre à ceux qui voudraient s'y mettre d'avoir déjà une base de travail complète.Ils pourront modifier eux-même pour créer leur propre apllication et celà sans perdre trop de temps. Tout ceci dans un but purement pédagogique et puis vos critiques seront extrèmement bienvenues.

JDv.01 est en cours "d'affinage" et restera en open source jusqu'à ce que le module Money Management soit terminé. Bien qu'opérationnel, le fichier est encore bien lourd car j'apprends encore à coder. Ce poste sera modifié en fonction de l'évolution des fonctions et de l'allègement du codage.

Sécurité
Mes Macros sont réalisées sans virus, ni espion , ni sous programme indésirable. Pour ceux qui ne veulent pas les accepter et qui désirent monter le fichier eux-même, le code se trouve dans les modules en fin de page.

Fonctionnement
En quelques mots, on utilise un indicateur MT4 P4L-period con.mq4, qui actualise un fichier CSV des OHLC (Open, High, Low et Close) en permanence et JDv.01 puise dans les données toutes les 56 secondes pour calculer les points graphiques suivants :

Paramétrables via la colonne des variables des séries de données de l'interface graphique : OHLC, Bollinger 1 et 2 à périodes uniques, moyennes mobiles arithmétiques 1, 2, et 3, moyennes mobiles exponentielles 1, et 2, support et résistance S3 et R3.
Enfin les signaux que vous paramettrez grace au conditionneur de stratégie et que sauvegarderz dans le sélectionneur de stratégie.

Note : Pour ceux qui n'utilisent pas MT4, il existe une section Yahoo Serveur, il vous suffit de rentrer le code Yahoo finance de votre choix. (La première mise à jour quand on passe d'un système à l'autre peut buguer, il faut simplement renouveler l'opération.

Note 2 : Le code, les cellules, les formules, etc... Rien est protégé : ce qui rend le programme fragile, si vous touchez à tout, vérifiez que toutes les fonctionnalités sont opérationnelles avant de sauvegarder.

Note 3 : Les onglets suivants sont en cours de réalisation : Rapport Mensuel, MM et Performance. En attendant si vous voulez analyser vos trades c'est ici sur un ancien poste : lien

Note 4 : Si vous avez des corrections qui fonctionnent concernant les boucles, les procédures appelantes, la structure des modules, l'organisation des procédures évènementielles ou standards indépendantes, merci d'en faire profiter tout le monde en postant un message (filtrés). Ca peut rendre notre communauté plus sympa ! Si vous préférez au contraire jalousement garder chacune de vos lignes de code et tout protéger par mot de passe et bien c'est... formidable !!!

Journal dynamique v0.1.xls, qu'est-ce que c'est ?

JDv.01 actualise via une macro (M1, M2 et M3) les données OHLC et réalise un graphique presque en temps réel (59 secondes de retard max).

Journal dynamique v0.1.xls, qu'est-ce que c'est ?

JDv.01 actualise via une macro (M1, M2 et M3) les données OHLC et réalise un graphique presque en temps réel (59 secondes de retard max).

JDv.01 ne travaille pas uniquement avec MT4 mais aussi avec le serveur Yahoo ainsi on peut tester les strats sur vraiment tous les codes Yahoo Finance exemple ici avec le code ^FCHI (cac40) en daily et en weekly et pour MT4 toutes les UT et tous les sous jacents

Le terminal MT4 relié directement à excel. Toutes les communications DDE sont opérationnelles et JDv.01 va chercher toutes les infos sur les open trades et délivre une petite analyse que je doit perfectionner.

Mode d'emploi

P4L-period con.mq4
http://www.forexfactory.com/showthread.php?t=206301

L'indicateur P4L-period converter permet d'inverser les prix des cotation MT4 pour des graphes offline et aussi d'utiliser un timeshift pour décaler les heures de cotations du brokers avec l'heure locale.

Il y a aussi une vraie perle dedans c'est qu'en fonction de l'UT du graph, il crée automatiquement un fichier CSV dans C:UsersvotrenomdutilisateurAppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsfiles et il n'y a aucun réglage à faire, le reste est automatisé via les macros de JDv.01.

Installation

1. Installer l'indicateur MT4 P4L-period con dans W7 : C:Usersvotrenomd'utilisateurAppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsindicators ou dans XP:C:Program FilesMetaTrader - ActivTradesexpertsindicators, éteindre et rallumer MT4, faire glisser l'indicateur dans le graphique de votre choix et le fichier CSV est directement créer dans le répertoire dans W7 C:Usersvotrenomd'utilisateurAppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsfiles ou dans XP:C:Program FilesMetaTrader - ActivTradesexpertsfiles

2. Copier le dossier AT - Journal Dynamique à la racine de C: sans en modifier le nom. Si vous ne voulez pas, il faudra changer les lignes de code en référence à "AT - Journal Dynamique". Pour cela faites une recherche de ce terme dans tous les modules, les feuilles et l'activewookbook et changer par l'adresse souhaitée.

Utilisation

CSV MT4 via P4L-period con : toutes les UT et tous les sous jacents propsé dans MT4 ( je dois encore m'assurer de certains comme le Palladium, le Platinium et d'autres cross exotiques que je ne trade pas, mais pour les principaux c'est OK. Dans la section DEE pour importer les données dans JDv.01.

En D5 je sélectionne le nom de l'instrument ex. Ger30, mais il lui faut aussi l'échance de la fin du contrat Ex. Jun en E5 et aussi l'année Ex. 13 en G5. Se sont des listes déjà renseignées, vous n'avez qu'à choisir.
JDv.01 reconnait si je selectionne des Currency en majuscule aussi et actualise directement la recherche
Quand je modifie le Zoom n c'est le nombre de bougie affiché qui change, le petit bouton à coté c'est le bouton "Zoom" ça rafraichi le graph et au cas ou il y a un bug graphique,
La barre défilement ou Scrollbar permet de se ballader dans le graphique
le bouton adresse : d'abord je copie mon chemin exact d'adresse du répertoire qui amène à Files, j'appuis sur adresse et je colle l'adresse dans le cadre, puis OK. La cellule Q1 est une liste d'adresse type.
Le conditionneur : Il n'est pas paramétrer. L'ensemble des paramètres modifiables sont répertoriés sous les variables n et n-1 ainsi on peut réaliser pour l'instant toutes les stratégies possibles à deux conditions. Je choisis mes variables dans les listes (texte noir) et les opérateurs logiques (en blanc), puis j'enregistre avec le bouton Engrenage. Pour rappeler une stratégie, j'appuis sur le bouton Play. J'évite le bouton poubelle. Il ne se passe rien tant que je ne raffraichis pas avec le bouton Zoom. J'appuis sur le bouton Zoom. Je réalise mes premières stratégies : La barre de défilement permet (lentement) de se déplacer sur l'évolution des cours. Les cases grises à droite de l'interface graphique peuvent recevoir différents paramètres comme l'affichage ou non de telles mma ou mme, périodes bol, bol à 2 ou 3 écarts type. On peut afficher les pivots r3 et s3. Dans la case du sélectionneur "B-Retournement" je peux choisir différentes stratégies pré enregistrées et je demande que les signaux soient affichés en appuyant sur le bouton "Play" en modifiant la position de la barre.
Le bouton ON lance la routine en "temps réel" et actualise constamment le graphique, le OFF arrete la procédure.

Serveur Yahoo : en daily et en weekly et pour tous les codes Yahoo finance, choisissez les boutons Daily ou Weekly pour importer les données journalières du symbole

Mise à jour du terminal MT4 : quand on clique sur Mise à jour terminal, JDv.01 recherche tous les open trades dans MonHistoriqueAT et les retranscrit dans l'onglet Terminal

Mes trades : quand on clique sur Importer Mes Trades, une boite de dialogue vous guide pour importer tous vos trades de MT4 depuis MonHistoriqueAT

Exemple pour signaux buy :

condition 1 : que close N-1 soit supérieur à MMA 269
condition 2 : que close N-1 soit inférieur à Bol (2) inf avec un écart type de 3

Les limites pour l'instant

L'évaluation du backtest résulte d'une formule encore bien simpliste, ainsi que le calcul du Money Management, très généraliste. L'amélioration de JDv.01 va se poursuivre peu à peu.

Bugs

1) Macros non activées : (Excel) Allez dans Outils/options/sécurité/Sécurité macros/ Mettre sur faible :
le bouton sortie du programme remet les valeurs Excel à leur position de base

2) Références/ bibliothèque du projet introuvable : (VBA) Appuyer sur stop/Allez dans Outils/Références :
Décocher toutes les références commençant par Manquantes

...fautes d'orthographes en cours de correction 🙂

L'application de A à Z

Le code sera amélioré peu à peu. Tout d'abord dans l'allègement et l'efficacité pour permettre d'être plus rapide. Ensuite 2 modules reste à construire. Le plus dure est fait, c'est à dire qu'il y a une vrai base de travail opérationnelle. Il n'en reste pas moins que rendre le programme intelligent sera un nouveau challenge. Au final il devra donner des signaux pertinents comme le placement manuel des points d'entrées et de sorties de trades parfaits et à l'aide du solveur trouver les fonctions et algorithmes qui s'accordent le mieux avec le comportement du bruit du marché.

Voici l'ensemble du code VBA dans les lignes suivantes qui reste encore bien "préhistorique" 🙂

Feuil(Backtest)

Private Sub Worksheet_Activate()

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Range("C5").Select

End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Applique la macro M3Archives si Nom "UT" change
If Target.Address = "$G$4" Then
Call M2Archives
Application.StatusBar = "OFF..."
End If
'Applique la macro Position si zoom n change
If Target.Address = "$U$26" Then
Call Position
Call Position
End If
If Target.Address = "$L$4" Then
Call M1Cours
Application.StatusBar = "OFF..."
End If

End Sub

L'objet Thisworkbook

Private Sub Workbook_Open()
Application.DisplayAlerts = False
Call Message1
Call DDE
Application.DisplayAlerts = True
Application.StatusBar = "OFF..."
End Sub

Sub Message1()

Sheets("Backtest").Select

Dim AdresseCsv As String, Utilisateur As String
Utilisateur = Application.UserName
AdresseCsv = InputBox("Bienvenue : " & Utilisateur & Chr(10) & _
"1. Pour activer la communication DDE, assurez-vous que MT4 est déjà ouvert" & Chr(10) & _
"2. Veuillez entrer l'adresse exacte du dossier de stockage des fichiers CSV de l'indicateur MT4." & Chr(10) & _
"Ex. W7 C:UsersBagi !AppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsfiles" & Chr(10) & _
"Ex. XP C:Program FilesMetaTrader - ActivTradesexpertsfiles", "Initialisation de l'application", Range("P1").Value)

Range("P1") = AdresseCsv

End Sub

Sub DDE()

Application.AskToUpdateLinks = False
ActiveWorkbook.UpdateLink Type:=xlOLELinks
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
ActiveWorkbook.UpdateLink Name:="MT4|ASK!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|BID!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|HIGH!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|LOW!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|NAME!Ger30Dec12", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|TIME!Ger30Jun13", Type:=xlOLELinks

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Windows("Journal dynamique v0.1.xls").Close SaveChanges:=True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Module Automate

'En tête de module
Option Explicit
Public RunWhen As Variant 'programmation horaire
Public Const cRunIntervalSeconds = 56 ' 56 secondes
Public Const cRunWhat = "M3Archives" 'nom de la sub à exécuter

Sub Start()
Select Case MsgBox("Voulez-vous démarrer la mise à jour CSV ?", vbCritical + vbOKCancel, "Mise à jour CSV")
Case vbOK
Application.StatusBar = "DDE..."
DDE
' Application.AskToUpdateLinks = False
' ActiveWorkbook.UpdateLink Type:=xlOLELinks
' ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
' ActiveWorkbook.UpdateLink Name:="MT4|ASK!Ger30Jun13", Type:=xlOLELinks
' ActiveWorkbook.UpdateLink Name:="MT4|BID!Ger30Jun13", Type:=xlOLELinks
' ActiveWorkbook.UpdateLink Name:="MT4|HIGH!Ger30Jun13", Type:=xlOLELinks
' ActiveWorkbook.UpdateLink Name:="MT4|LOW!Ger30Jun13", Type:=xlOLELinks
' ActiveWorkbook.UpdateLink Name:="MT4|NAME!Ger30Dec12", Type:=xlOLELinks
' ActiveWorkbook.UpdateLink Name:="MT4|TIME!Ger30Jun13", Type:=xlOLELinks

Application.StatusBar = "Lance la routine.."
M3Archives

Case vbCancel
Application.StatusBar = "OFF..."
Exit Sub
End Select
End Sub

Sub LanceLeLecteurDeMessage()
Application.StatusBar = "ON..."

'Programmation horaire = Maintenant + 56 secondes
RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub

Sub StoppeLeLecteurDeMessage()
Select Case MsgBox("Voulez-vous arrêter la mise à jour CSV ?", vbCritical + vbOKCancel, "Mise à jour CSV")
Case vbOK
'Arrête le process en lui repassant la dernière programmation horaire
On Error Resume Next
Application.OnTime RunWhen, cRunWhat, , False
Application.StatusBar = "OFF..."
Case vbCancel
Exit Sub
End Select
End Sub

Sub Sortie()
Application.StatusBar = "Au revoir..."
Select Case MsgBox("Voulez-vous sortir de l'application ?", vbCritical + vbOKCancel, "Quitter")
Case vbOK

On Error Resume Next
Application.OnTime RunWhen, cRunWhat, , False
Application.DisplayAlerts = False
Application.StatusBar = False
Windows("Journal dynamique v0.1.xls").Close SaveChanges:=True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True

Case vbCancel
Application.StatusBar = False
Exit Sub
End Select

End Sub
Sub M84StopCalculs()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
End Sub
Sub M85RepriseCalculs()
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Sub DDE()

Application.AskToUpdateLinks = False
ActiveWorkbook.UpdateLink Type:=xlOLELinks
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
ActiveWorkbook.UpdateLink Name:="MT4|ASK!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|BID!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|HIGH!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|LOW!Ger30Jun13", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|NAME!Ger30Dec12", Type:=xlOLELinks
ActiveWorkbook.UpdateLink Name:="MT4|TIME!Ger30Jun13", Type:=xlOLELinks
End Sub

Module M1Import1

'............................................................................
'. Module M1Import1 .
'............................................................................
'. .
'. DESCRIPTION........ : Module d'importation des données OHLC pour les .
'. valeurs et les CFD de MT4 .
'. .
'. .
'. AUTEUR............. : Bagi de http://turtlesignal.e-monsite.com/ .
'. .
'............................................................................

Sub M2Archives()
'Application.StatusBar = "Mise à jour CSV..."
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
Range("A4:I10000").ClearContents
Application.StatusBar = "Nettoyage données"
CopieNom = Range("I4")

'Workbooks.Open Filename:="C:UsersBagi !AppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsfilesGer30Jun13+15.csv"
Dim strFichier As String
Dim strRepertoire As String
strRepertoire = Sheets("Backtest").Range("$P$1").Value
strFichier = Sheets("Backtest").Range("$P$2").Value

Application.DisplayAlerts = False
Workbooks.Open Filename:=strRepertoire & "" & strFichier

Dim MonTableaucinqmillemax As Range

basLigne = Range("A65536").End(xlUp).Row
If basLigne > 5000 Then
DernLigne = Range("A65536").End(xlUp).Offset(-5000, 0).Row
Set MonTableauMonTableaucinqmillemax = Range("A1:G" & DernLigne)
MonTableauMonTableaucinqmillemax.Select
Selection.Delete Shift:=xlUp
End If

Application.StatusBar = "Importe les données OHLC CSV..."

'Conversion des données CSV dans le fichier CSV
'Données délimitées par une virgule dans la colonne A uniquement
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True
'Insertion d'une nouvelle colonne entre B et C pour regrouper la date (A) et l'heure (B) dans
'Cette nouvelle colonne C
Columns("C:C").Select
Selection.Insert Shift:=xlToRight

Dim MonTableau As Range
dernièreLigne = Range("A65536").End(xlUp).Row
Set MonTableau = Range("C1:C" & dernièreLigne)
MonTableau.Select
'Formule qui conjugue la date et l'heure
MonTableau.FormulaR1C1 = "=+RC[-2]+RC[-1]"
'Format date
Selection.NumberFormat = "dd mmm/ yyyy hh:mm"
Columns("C:C").ColumnWidth = 17.29
'CopieNom = Range("A1")
Range(Range("C1"), Range("H1").End(xlDown)).Copy
'Retour sur le fichier JD
Windows("Journal dynamique v0.1.xls").Activate
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
'et copie
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range(Range("I4"), Range("I4").End(xlDown)).FormulaR1C1 = "=+IF(RC[-2]"""",RC[-2],"""")"
Range(Range("A4"), Range("I4").End(xlDown)).Font.Size = 7
'Range("C1").Value = CopieNom
Range("C1").Value = Sheets("Backtest").Range("P2").Value
Range("C3") = "Date"
Range("D3") = "Open"
Range("E3") = "High"
Range("F3") = "Low"
Range("G3") = "Close"
Range("H3") = "Volume"
Range("I3") = "Adj. Close"
Range(Range("C3"), Range("C3").End(xlDown)).NumberFormat = "d/mmm/yyyy h:mm"
Range(Range("D3"), Range("G3").End(xlDown)).NumberFormat = "0.00"
Range(Range("H3"), Range("H3").End(xlDown)).NumberFormat = "0,000"
Range(Range("I3"), Range("I3").End(xlDown)).NumberFormat = "0.00"
Range(Range("C3"), Range("C3").End(xlDown)).NumberFormat = "0"

'Index
Application.StatusBar = "Création index..."
Range("A4").FormulaR1C1 = "1"
Range("A5:A" & Range("C65536").End(xlUp).Row).FormulaR1C1 = "=IF(RC[2]"""",R[-1]C+1,"""")"
Application.StatusBar = "Création index..."

Range("C1").Select

Windows(strFichier).Close SaveChanges:=False
'Windows("Ger30Jun13+15.csv").Close SaveChanges:=False

Application.StatusBar = "Mise en format des cellules..."
Columns("C:C").ColumnWidth = 17
Range(Range("C4"), Range("C4").End(xlDown)).NumberFormat = "0"
Range(Range("C4"), Range("C4").End(xlDown)).Copy
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(Range("B4"), Range("B43").End(xlDown)).NumberFormat = "d/mmm/yyyy h:mm"
Columns("B:B").ColumnWidth = 17
Range("G1").FormulaR1C1 = "=MIN(C[-4])"
Range("I1").FormulaR1C1 = "=MAX(C[-6])"
Application.StatusBar = False

'Efface les cellules vides contenant une formule pour que les series de données s'arrettent en
'même temps que le cours OHLC dans le graphique
Range("P5:AI5").Select
Application.CutCopyMode = False
Selection.Copy
Range("P6:AI5003").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Dim MonTableau2 As Range

dernièreLigne = Range("A65536").End(xlUp).Offset(1, 0).Row
Set MonTableau2 = Range("P5004:AI" & dernièreLigne)
MonTableau2.Select
Selection.Delete
Range("C1").Select
Sheets("Backtest").Select

Range("P15") = Range("$Bj$4").Value

ActiveSheet.ChartObjects("Graphique 1244").Activate

ActiveChart.PlotArea.Select
ActiveChart.Shapes("Text Box 3").Select
Selection.Formula = "Backtest!$I$4"
Selection.AutoScaleFont = False
With Selection.Font
.Name = "Calibri"
.FontStyle = "Gras"
.Size = 8
.ColorIndex = 3
.Background = xlOpaque
End With

Range("C5").Select

Call Position
Call Position

End Sub

Sub M3Archives()
'Application.StatusBar = "Mise à jour CSV..."
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
Range("A4:I10000").ClearContents
Application.StatusBar = "Nettoyage données"
CopieNom = Range("I4")

'Workbooks.Open Filename:="C:UsersBagi !AppDataLocalVirtualStoreProgram FilesMetaTrader - ActivTradesexpertsfilesGer30Jun13+15.csv"
Dim strFichier As String
Dim strRepertoire As String
strRepertoire = Sheets("Backtest").Range("$P$1").Value
strFichier = Sheets("Backtest").Range("$P$2").Value

Application.DisplayAlerts = False
Workbooks.Open Filename:=strRepertoire & "" & strFichier

Dim MonTableaucinqmillemax As Range

basLigne = Range("A65536").End(xlUp).Row
If basLigne > 5000 Then
DernLigne = Range("A65536").End(xlUp).Offset(-5000, 0).Row
Set MonTableauMonTableaucinqmillemax = Range("A1:G" & DernLigne)
MonTableauMonTableaucinqmillemax.Select
Selection.Delete Shift:=xlUp
End If

Application.StatusBar = "Importe les données OHLC CSV..."

'Conversion des données CSV dans le fichier CSV
'Données délimitées par une virgule dans la colonne A uniquement
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True
'Insertion d'une nouvelle colonne entre B et C pour regrouper la date (A) et l'heure (B) dans
'Cette nouvelle colonne C
Columns("C:C").Select
Selection.Insert Shift:=xlToRight

Dim MonTableau As Range
dernièreLigne = Range("A65536").End(xlUp).Row
Set MonTableau = Range("C1:C" & dernièreLigne)
MonTableau.Select
'Formule qui conjugue la date et l'heure
MonTableau.FormulaR1C1 = "=+RC[-2]+RC[-1]"
'Format date
Selection.NumberFormat = "dd mmm/ yyyy hh:mm"
Columns("C:C").ColumnWidth = 17.29
'CopieNom = Range("A1")
Range(Range("C1"), Range("H1").End(xlDown)).Copy
'Retour sur le fichier JD
Windows("Journal dynamique v0.1.xls").Activate
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
'et copie
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range(Range("I4"), Range("I4").End(xlDown)).FormulaR1C1 = "=+IF(RC[-2]"""",RC[-2],"""")"
Range(Range("A4"), Range("I4").End(xlDown)).Font.Size = 7
'Range("C1").Value = CopieNom
Range("C1").Value = Sheets("Backtest").Range("P2").Value
Range("C3") = "Date"
Range("D3") = "Open"
Range("E3") = "High"
Range("F3") = "Low"
Range("G3") = "Close"
Range("H3") = "Volume"
Range("I3") = "Adj. Close"
Range(Range("C3"), Range("C3").End(xlDown)).NumberFormat = "d/mmm/yyyy h:mm"
Range(Range("D3"), Range("G3").End(xlDown)).NumberFormat = "0.00"
Range(Range("H3"), Range("H3").End(xlDown)).NumberFormat = "0,000"
Range(Range("I3"), Range("I3").End(xlDown)).NumberFormat = "0.00"
Range(Range("C3"), Range("C3").End(xlDown)).NumberFormat = "0"

'Index
Application.StatusBar = "Création index..."
Range("A4").FormulaR1C1 = "1"
Range("A5:A" & Range("C65536").End(xlUp).Row).FormulaR1C1 = "=IF(RC[2]"""",R[-1]C+1,"""")"
Application.StatusBar = "Création index..."

Range("C1").Select

Windows(strFichier).Close SaveChanges:=False
'Windows("Ger30Jun13+15.csv").Close SaveChanges:=False

Application.StatusBar = "Mise en format des cellules..."
Columns("C:C").ColumnWidth = 17
Range(Range("C4"), Range("C4").End(xlDown)).NumberFormat = "0"
Range(Range("C4"), Range("C4").End(xlDown)).Copy
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(Range("B4"), Range("B43").End(xlDown)).NumberFormat = "d/mmm/yyyy h:mm"
Columns("B:B").ColumnWidth = 17
Range("G1").FormulaR1C1 = "=MIN(C[-4])"
Range("I1").FormulaR1C1 = "=MAX(C[-6])"
Application.StatusBar = False

'Efface les cellules vides contenant une formule pour que les series de données s'arrettent en
'même temps que le cours OHLC dans le graphique
Range("P5:AI5").Select
Application.CutCopyMode = False
Selection.Copy
Range("P6:AI5003").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Dim MonTableau2 As Range

dernièreLigne = Range("A65536").End(xlUp).Offset(1, 0).Row
Set MonTableau2 = Range("P5004:AI" & dernièreLigne)
MonTableau2.Select
Selection.Delete
Range("C1").Select
Sheets("Backtest").Select

Range("P15") = Range("$Bj$4").Value

ActiveSheet.ChartObjects("Graphique 1244").Activate

ActiveChart.PlotArea.Select
ActiveChart.Shapes("Text Box 3").Select
Selection.Formula = "Backtest!$I$4"
Selection.AutoScaleFont = False
With Selection.Font
.Name = "Calibri"
.FontStyle = "Gras"
.Size = 8
.ColorIndex = 3
.Background = xlOpaque
End With

Range("C5").Select

Call Position
Call Position
LanceLeLecteurDeMessage
End Sub
Sub M5MatriceMulti()
Application.StatusBar = "Merci de patienter..."

'MME1
ActiveWorkbook.Names.Add Name:="SE1", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C22,Backtest!R4C21,0,Backtest!R26C21,1)"
'MME2
ActiveWorkbook.Names.Add Name:="SE2", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C23,Backtest!R4C21,0,Backtest!R26C21,1)"
'R3
ActiveWorkbook.Names.Add Name:="SR3", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C24,Backtest!R4C21,0,Backtest!R26C21,1)"

Application.StatusBar = "Nommage des variables de matrice multidimensionnelles..."
'S3
ActiveWorkbook.Names.Add Name:="SS3", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C25,Backtest!R4C21,0,Backtest!R26C21,1)"
'MMA2
ActiveWorkbook.Names.Add Name:="SM2", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C26,Backtest!R4C21,0,Backtest!R26C21,1)"
'MMA3
ActiveWorkbook.Names.Add Name:="SM3", RefersToR1C1:= _
"=OFFSET('Cours & Archives'!R3C30,Backtest!R4C21,0,Backtest!R26C21,1)"

Sheets("Backtest").Select
Application.StatusBar = False
End Sub

'............................................................................
'. SERVEUR YAHOO .
'............................................................................

Sub M7Daily()
'Range("$BJ$6") = "d"
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
''Sheets("Cours & Archives").Range("D1") = "d"
Range("D1") = "d"
''d = Range("D1").Value
M1Cours
End Sub

Sub M7Weekly()
'Range("$BJ$6") = "w"
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
''Sheets("Cours & Archives").Range("D1") = "w"
Range("D1") = "w"
'w = Range("D1").Value
M1Cours
End Sub

Sub M1Cours()
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
Application.DisplayAlerts = False
Application.StatusBar = "Nettoyage données"
Sheets("Cours & Archives").Select
Range("A4:I10000").ClearContents
Application.AutoRecover.Enabled = False

Application.StatusBar = "Préparation Query..."

Dim QuerySheet As Worksheet
Dim DataSheet As Worksheet
Dim EndDate As Date
Dim StartDate As Date
Dim Symbol As String
Dim qurl As String
Dim nQuery As Name

Set DataSheet = ActiveSheet

Range("D1").NumberFormat = "@"

Range("F1") = "Du"

Range("G1").FormulaR1C1 = "=R[0]C[2]-5*365-1"
Range("G1").NumberFormat = "d mmm/ yyyy h:mm"
StartDate = DataSheet.Range("G1").Value

Range("H1") = "Au"

Range("I1").FormulaR1C1 = "=TODAY()"
Range("I1").NumberFormat = "d mmm/ yyyy h:mm"
EndDate = DataSheet.Range("I1").Value

' Symbol = DataSheet.Range("C1").Value
Symbol = Sheets("Backtest").Range("L4").Value

' Range("C3").CurrentRegion.ClearContents

'URL

qurl = "http://chart.yahoo.com/table.csv?s=" & Symbol
qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
"&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Range("D1") & "&q=q&y=0&z=" & _
Symbol & "&x=.csv"
Range("E1") = qurl

' On Error GoTo GestionnaireErreur1

QueryQuote:
With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl, Destination:=DataSheet.Range("BY3"))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
' .SaveData = False
End With

Columns("BY:BY").Select
Selection.TextToColumns Destination:=Range("BY1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True

Range("BY4:CE5003").Select
Selection.Sort Key1:=Range("BY4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

'Index
Application.StatusBar = "Création index..."

Range("BW4").FormulaR1C1 = "1"
Dim MonTableau As Range
dernièreLigne = Range("BY65536").End(xlUp).Row
Set MonTableau = Range("BW5:BW" & dernièreLigne)
MonTableau.Select
MonTableau.FormulaR1C1 = "=IF(RC[2]"""",R[-1]C+1,"""")"

Range("BY:BY").Copy
Range("BX:BX").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("BX:BX").NumberFormat = "d/mmm/yyyy h:mm"

Dim MonTableaumaxcinqmillequatre As Range
Dim Dligne As Long
Dim Bligne As Long
Dligne = Range("BY" & Rows.Count).End(xlUp).Offset(-1, 0).Row
Bligne = 5007 - Dligne
Set MonTableaumaxcinqmillequatre = Range("BW4:CE" & Dligne)
MonTableaumaxcinqmillequatre.Select
Selection.Copy

'
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Columns("BW:CE").Select
Selection.Delete Shift:=xlToLeft

'Efface les cellules vides contenant une formule pour que les series de données s'arrettent en
'même temps que le cours OHLC dans le graphique
Range("P5:AI5").Select
Application.CutCopyMode = False
Selection.Copy
Range("P6:AI5003").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Dim MonTableau2 As Range

dernièreLigne = Range("A65536").End(xlUp).Offset(1, 0).Row
Set MonTableau2 = Range("P5004:AI" & dernièreLigne)
MonTableau2.Select
Selection.Delete
Range("C1").Select
Sheets("Backtest").Select

Range("P15") = Range("$Bj$5").Value

ActiveSheet.ChartObjects("Graphique 1244").Activate

ActiveChart.PlotArea.Select
ActiveChart.Shapes("Text Box 3").Select
Selection.Formula = "Backtest!$L$4"
Selection.AutoScaleFont = False
With Selection.Font
.Name = "Calibri"
.FontStyle = "Gras"
.Size = 8
.ColorIndex = 3
.Background = xlOpaque
End With

Range("C5").Select

Call Position
Call Position

End Sub

Sub Echelle()

Application.ScreenUpdating = False
Dim ChartVar As Chart
Dim lMax As Long, lMin As Long
With ActiveSheet
lMax = .Range("Max").Value
lMin = .Range("Min").Value

Set ChartVar = .ChartObjects("Graphique 1244").Chart

With ChartVar.Axes(xlValue, xlPrimary)
.MinimumScale = lMin
.MaximumScale = lMax
End With

With ChartVar.Axes(xlValue, xlSecondary)
.MinimumScale = lMin
.MaximumScale = lMax
End With

End With

n = Sheets("Backtest").Range("$U$5")
z = Sheets("Backtest").Range("$U$26")

Sheets("Backtest").Shapes("Scroll Bar 1227").Select
With Selection
.Max = n - (0.36 * z)
.Display3DShading = True
End With

Range("$C$5").Select

End Sub

Sub Position()

Call M5MatriceMulti
Call Echelle
n = Sheets("Backtest").Range("$U$5")
z = Sheets("Backtest").Range("$U$26")
Sheets("Backtest").Shapes("Scroll Bar 1227").Select
With Selection
.Value = n - (0.8 * z)
.Max = n - (0.2 * z)
.Display3DShading = True
End With
Range("$C$5").Select

End Sub

Module M2Import2

'............................................................................
'. Module M2Import2 .
'............................................................................
'. .
'. DESCRIPTION........ : Module d'importation de l'historique Trades .
'. .
'. .
'. .
'. AUTEUR............. : Bagi de http://turtlesignal.e-monsite.com/ .
'. .
'. .
'. .
'............................................................................
'. MODIFIE LE ../../.... PAR ...................... .
'. DESCRIPTION DE LA MODIFICATION : .
'. .
'............................................................................

Sub PA20MAJMesTrades()
Sheets("Mes Trades").Select
MsgBox "1. Dans le Terminal MT4, Selectionnez Historique du Compte" & Chr(10) & "2. Avec le bouton droit de la souris sélectionnez Toute l'Historique" & Chr(10) & "3. Puis Enregistrez au Format Rapport" & Chr(10) & "4. Dans TYPE séléctionnez Tous fichiers (all files)" & Chr(10) & "5. Choisissez MonHistoriqueAT.xls & Enregistrez." & Chr(10) & "6. Cliquez sur OK", vbCritical + vbOKOnly, "Travaux Manuels"

Call M5ClearMesTrades
Call M84StopCalculs
Call M4MesTrades
Application.StatusBar = "Merci de patienter..."
Call M85RepriseCalculs
Call M6FormulesMesrades
Application.StatusBar = False
Windows("MonHistoriqueAT.xls").Close SaveChanges:=False
Sheets("Performances").Activate
ActiveWindow.ScrollColumn = 21

Exit Sub

End Sub

Sub M4MesTrades()

'Ouverture et Prépa
Workbooks.Open Filename:="C:AT - Journal DynamiqueMonHistoriqueAT.xls"
'défusionner
Cells.Select
With Selection
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'Mise en Format
Range("N:N").Select
Selection.Replace What:=" ", Replacement:="'", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Et ligne à partir de Summary:
Cells.Find(What:="Summary:", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Select
ActiveCell.Rows("1:4").EntireRow.Select
Selection.Replace What:=" ", Replacement:="'", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Dim MonTableau As Range
Sheets("MonHistoriqueAT").Select
dernièreLigne = Range("A65536").End(xlUp).Row

Set MonTableau = Range("A5:N" & dernièreLigne)
MonTableau.Select

Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Sheets("Mes Trades").Select
Range("A1").Select
Application.StatusBar = "Recopie Mes Trades pour la période sélectionnée..."
ActiveSheet.Paste
Cells.Select
'défusionner
With Selection
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Interior.ColorIndex = xlNone
Selection.RowHeight = 9.75

With Selection.Font
.Size = 7
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range(Range("A1"), Range("N1")).Font.Bold = True

Application.StatusBar = "Merci de patienter..."
Cells.Find(What:="Closed P/L:", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

ActiveCell.Offset(-1, 0).Range("A1").Select

ActiveSheet.Rows(ActiveCell.Row).EntireRow.Select
ActiveCell.Rows("1:21").EntireRow.Select
Selection.ClearContents
Range("A1").Select
Rows("1:1").RowHeight = 53.25

Application.StatusBar = "Préparation du graphique..."

End Sub

Sub M5ClearMesTrades()
Range("A2:N6000").ClearContents
Range("AR:AU").ClearContents
Range("A1").Select
End Sub

Sub M6FormulesMesrades()

'Recherche date Historique adaptation Banzaï
'1. Recopiage valeurs sans formule
Columns("O:P").Select
Selection.Copy
Columns("AR:AS").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.NumberFormat = "m/d/yyyy"
Selection.Font.ColorIndex = 0

Range("AR1:AS" & Range("AR" & Rows.Count).End(xlUp).Row).AdvancedFilter _
Action:=xlFilterCopy, Unique:=True, CopyToRange:=Range("AT1:AU1")

Range("AT1:AU" & Range("AT" & Rows.Count).End(xlUp).Row).Sort Key1:=Range("AT2"), _
Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

'Voir en D Deposit
Columns("D:D").ColumnWidth = 12.5

'Mois
Range("P3:P6000").FormulaR1C1 = _
"=CHOOSE(MONTH(RC9),""Janvier"",""Février"",""Mars"",""Avril"",""Mai"",""Juin"",""Juillet"",""Août"",""Septembre"",""Octobre"",""Novembre"",""Décembre"" )"

'Deposit
Range("Q2:Q6000").FormulaR1C1 = _
"=IF(ISERROR(SEARCH(""Deposit"",RC[-13],1)),"""",""Deposit"")"

'Fee

Range("R2:R6000").FormulaR1C1 = _
"=IF(ISERROR(SEARCH(""Fee"",RC[-14],1)),"""",""Fee"")"
'Withdrawal

Range("S2:S6000").FormulaR1C1 = _
"=IF(ISERROR(SEARCH(""Withdrawal"",RC[-15],1)),"""",""Withdrawal"")"

'ADJ
Range("T2:T6000").FormulaR1C1 = _
"=IF(ISERROR(SEARCH(""ADJ"",RC[-16],1)),"""",""ADJ"")"

'CommercialGest
Range("U2:U6000").FormulaR1C1 = _
"=IF(ISERROR(SEARCH(""CommercialGest"",RC[-17],1)),"""",""CommercialGest"")"

'Control Profit en V et C14=N
Range("V3:V6000").FormulaR1C1 = "=+RC14"

Range("O1").Select

End Sub

Module8Backtest

'............................................................................
'. Module M8Backtest .
'............................................................................
'. .
'. DESCRIPTION........ : Module d'exéctution et d'enregistrement des .
'. stratégies basées sur des "algos" simples à .
'. 4 variables et 2 conditions .
'. .
'. AUTEUR............. : Bagi de http://turtlesignal.e-monsite.com/ .
'. .
'............................................................................

Sub SignauxPlay()
'Procédure d'exécution dont le bouton se trouve sur l'onglet Backtest

'l'écran reste sur l'onglet en cours même si des procédures s'executent sur d'autres onglets
Application.ScreenUpdating = False
'efface les signaux achat vente de la stratégie précédante
Sheets("Cours & Archives").Range("T5:U5003").ClearContents

'Définition des variables b et s contenant une formule dont les adresses sont des cellules de
'l'onglet Cours & Archives à savoir :

'Séries de données adresses/cellules de l'onglet Cours & Archives à savoir :
'................................................................................

'Bol#1- $AE5
'Bol#1+ $AG5
'Bol#1+n-1 $AG4
'Bol#1-n-1 $AE4
'Bol#2- $AH5
'Bol#2+ $Ai5
'Bol#2+n-1 $Ai4
'Bol#2-n-1 $AH4
'Close $I5
'Close n-1 $I4
'EMA#1 $V5
'EMA#1 n-1 $V4
'EMA#2 $W5
'EMA#2 n-1 $W4
'ET Bol#1 $U$19
'ET Bol#2 $U$20
'High $E5
'High n-1 $E4
'Low $F5
'Low n-1 $F4
'MMA $AF5
'MMA n-1 $AF4
'MMA#2 $Z5
'MMA#2 n-1 $Z4
'MMA#3 $AD5
'MMA#3 n-1 $AD4
'Open $D5
'Open n-1 $D4
'SR3 $X4
'SS3 $Y4

'La formule est crée sur l'onglet Backtest cependant la formule est destinée à l'onglet Cours & Archives,
'c'est une complication due à séparation en deux onglets des données et du graphique

'Définition variables (formules) et leurs adresses
'Le but de cette procédure est de stocker une formule sous forme de texte AB6 et AC6 et de la coller ailleurs sous forme
'd'une formule opérationnelle avant de l'envoyer dans l'onglet Cours & Archives pour une exéction par ligne
Dim b As String
Dim s As String
b = Range("AB6")
s = Range("AC6")

Range("AD3").FormulaLocal = b
Range("AE3").FormulaLocal = s

'Quand l'une des stratégies est sélectionnée dans la cellule $C$5 grise (sélectionneur de stratégies)
'et correspond à celle dans la liste ($W$6:$W$13) le bouton play va chercher toutes les variables concernées par
'celle-ci et l'exécute pour faire apparaitre les signaux propres à chacune d'elle.
Sheets("BACKTEST").Select
' 'EET
If Range("$C$5") = Range("$W$6") Then
'Copie les variables des séries de données. Ex : Périodes correspondantes à l'EMA#1 = 7
'Dans l'interface graphique
Range("AF5:AF17").Copy
Range("U18").Select
ActiveSheet.Paste

'Copie les variables et formules des adresses correspondantes
'aux cellules de calculs de l'onglet Cours & Archives dans le conditionneur
Range("X18:AN18").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X19:AN19").Copy
Range("B10").Select
ActiveSheet.Paste
End If
'
' 'Retournement
If Range("$C$5") = Range("$W$7") Then
Range("AG5:AG17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X20:AN20").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X21:AN21").Copy
Range("B10").Select
ActiveSheet.Paste
'
End If
'
'Croisement
If Range("$C$5") = Range("$W$8") Then
Range("AH5:AH17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X22:AN22").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X23:AN23").Copy
Range("B10").Select
ActiveSheet.Paste
End If
'
' 'Turbo CAC
If Range("$C$5") = Range("$W$9") Then
Range("AI5:AI17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X24:AN24").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X25:AN25").Copy
Range("B10").Select
ActiveSheet.Paste
End If
'
'Turbo DAX
If Range("$C$5") = Range("$W$10") Then
Range("AJ5:AJ17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X26:AN26").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X27:AN27").Copy
Range("B10").Select
ActiveSheet.Paste
End If
'
'Ma strat 1
If Range("$C$5") = Range("$W$11") Then
Range("AK5:AK17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X28:AN28").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X29:AN29").Copy
Range("B10").Select
ActiveSheet.Paste
End If
'
'Ma strat 2
If Range("$C$5") = Range("$W$12") Then
Range("AL5:AL17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X30:AN30").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X31:AN31").Copy
Range("B10").Select
ActiveSheet.Paste
End If

' Ma strat 3
If Range("$C$5") = Range("$W$13") Then
Range("AM5:AM17").Copy
Range("U18").Select
ActiveSheet.Paste
Range("X32:AN32").Copy
Range("B6").Select
ActiveSheet.Paste
Range("X33:AN33").Copy
Range("B10").Select
ActiveSheet.Paste
End If

'Copie les formules opérationnelles
Range("AD3:AE3").Select
Selection.Copy
'Création de la sélection de destination
Sheets("Cours & Archives").Select
Dim MonTableau As Range
dernièreLigne = Range("A65536").End(xlUp).Row
Set MonTableau = Range("T5:U" & dernièreLigne)
MonTableau.Select
'Colle les formules opérationnelles
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

'Retour sur l'onglet Backtest
Sheets("BACKTEST").Select
'Positionnement
ActiveWindow.ScrollColumn = 1
ActiveWindow.SmallScroll Down:=0
Range("$C$5").Select
End Sub

Sub StockerFormule()

'l'écran reste sur l'onglet en cours même si des procédures s'executent sur d'autres onglets
Application.ScreenUpdating = False

'EET
If Range("$C$5") = Range("$W$6") Then
'Copie les formules texte
Range("X6:Y6").Select
Selection.Copy
'Vers Stockage formules texte
Range("Z6:AA6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Copie les variables des toutes les séries de données. Ex : Périodes correspondantes à l'EMA#1 = 7, etc...
'de l'interface graphique
Range("U18:U30").Select
Selection.Copy
'vers Stockage variables des séries de données par stratégies
Range("AF5").Select
ActiveSheet.Paste

'Copie les variables du conditionneur
Range("B6:R6").Select
Selection.Copy
'vers Stockage des variables du conditionneur
Range("X18").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X19").Select
ActiveSheet.Paste
End If

'Retournement
If Range("$C$5") = Range("$W$7") Then
'Copie les formules texte
Range("X7:Y7").Select
Selection.Copy
'Vers Stockage formules texte
Range("Z7:AA7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AG5").Select
ActiveSheet.Paste

'condition
Range("B6:R6").Select
Selection.Copy
Range("X20").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X21").Select
ActiveSheet.Paste

End If

'Croisement
If Range("$C$5") = Range("$W$8") Then
Range("X8:Y8").Select
Selection.Copy
Range("Z8:AA8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AH5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X22").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X23").Select
ActiveSheet.Paste

End If

'Turbo CAC
If Range("$C$5") = Range("$W$9") Then
Range("X9:Y9").Select
Selection.Copy
Range("Z9:AA9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AI5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X24").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X25").Select
ActiveSheet.Paste
End If

'Turbo DAX
If Range("$C$5") = Range("$W$10") Then
Range("X10:Y10").Select
Selection.Copy
Range("Z10:AA10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AJ5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X26").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X27").Select
ActiveSheet.Paste
End If

'Ma strat 1
If Range("$C$5") = Range("$W$11") Then
Range("X11:Y11").Select
Selection.Copy
Range("Z11:AA11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AK5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X28").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X29").Select
ActiveSheet.Paste
End If

'Ma strat 2
If Range("$C$5") = Range("$W$12") Then
Range("X12:Y12").Select
Selection.Copy
Range("Z12:AA12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'DM
Range("U18:U30").Select
Selection.Copy
Range("AL5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X30").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X31").Select
ActiveSheet.Paste
End If

'Ma strat 3
If Range("$C$5") = Range("$W$13") Then
Range("X13:Y13").Select
Selection.Copy
Range("Z13:AA13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'DM
Range("U18:U30").Select
Selection.Copy
Range("AM5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'condition Sell
Range("B6:R6").Select
Selection.Copy
Range("X32").Select
ActiveSheet.Paste
Range("B10:R10").Select
Application.CutCopyMode = False
Selection.Copy
Range("X33").Select
ActiveSheet.Paste

End If
ActiveWindow.ScrollColumn = 1
Range("$C$5").Select
End Sub

Sub AfficherR3S3()
'l'écran reste sur l'onglet en cours même si des procédures s'executent sur d'autres onglets
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
Range("X:X,Y:Y").Select
Selection.EntireColumn.Hidden = False
Sheets("BACKTEST").Select

Range("$C$5").Select
End Sub
Sub MasquerR3S3()
'l'écran reste sur l'onglet en cours même si des procédures s'executent sur d'autres onglets
Application.ScreenUpdating = False
Sheets("Cours & Archives").Select
Range("X:X,Y:Y").Select
Selection.EntireColumn.Hidden = True
Sheets("BACKTEST").Select

Range("$C$5").Select
End Sub

Sub M83EffacerCondition()

Select Case MsgBox("Vous allez effacer toutes les variables du conditionneur." & Chr(10) & "Est-ce c'est ce que vous voulez ?", vbCritical + vbOKCancel, "Alerte !")
Case vbOK
Range("C6:F6,H6:L6,C10:F10,H10:L10").Select
Selection.ClearContents
Case vbCancel
Exit Sub
End Select

End Sub

'WAF
'2 ' Les variables "signaux" de la formule doivent être stockées à la manière des formules rappelées et enregistrées comme
'Sub StockerFormule() mais stockervariables et doivent être modifiées après enregistrement

'3 'De la même manière les valeurs paramètres des MM et boll doivent être stockées et rappelées
'4 la structure de la formule doit fonctionnelle qu'elle que soit le type de contion cad
' un coup ET 2x un coup OU 3x en gros pas d'abération formule avec les points virgules

'5 Il faut un solveur dont la contraite 1) serait la performance et que la formule s'ajuste
'contrainte 2 = buy ou sell; contrainte 3 ?

'6 Il faut protéger la feuille et les cellules

'pour modifier le nombre de conditions de la formule
' soit 2 et tel type de formule (ex de buy)
' soit 3 et tel type de formule (ex de sell)
' soit 4 et tel type de formule (non réalisé)

'idée / mettre un selectionneur de formule type a l'endroit de formule du selectionneur avec les differents type de formule et basta

Sub TestBID()

Dim c As String
Dim d As String
Dim e As String
Dim f As String
Dim g As String
c = Range("D1")
d = Range("F1")
e = Range("H1")
f = Range("J1")
g = Range("L1")

Range("D2").FormulaLocal = c
Range("F2").FormulaLocal = d
Range("H2").FormulaLocal = e
Range("J2").FormulaLocal = f
Range("L2").FormulaLocal = g
End Sub

Module M9TM4

'............................................................................
'. Module M9Import2 .
'............................................................................
'. .
'. DESCRIPTION........ : Module d'importation des Open Trades .
'. .
'. .
'. .
'. AUTEUR............. : Bagi de http://turtlesignal.e-monsite.com/ .
'. .
'. .
'............................................................................

Sub PA90MajTerminal()
MsgBox "1. Dans le Terminal MT4, Selectionnez Historique du Compte" & Chr(10) & "2. Avec le bouton droit de la souris sélectionnez Toute l'Historique" & Chr(10) & "3. Puis Enregistrez au Format Rapport" & Chr(10) & "4. Dans TYPE séléctionnez Tous fichiers (all files)" & Chr(10) & "5. Choisissez MonHistoriqueAT.xls & Enregistrez." & Chr(10) & "6. Cliquez sur OK", vbCritical + vbOKOnly, "Travaux Manuels"
Application.ScreenUpdating = False
Call MiseenPage
Call formulejd
Call BidAsk
Range("A1").Select
Windows("MonHistoriqueAT.xls").Close SaveChanges:=False
Application.StatusBar = False
End Sub
Sub MiseenPage()
Application.StatusBar = "Merci de patienter..."

'Ouverture et Prépa
Workbooks.Open Filename:="C:AT - Journal DynamiqueMonHistoriqueAT.xls"
'défusionner
Cells.Select
With Selection
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'Mise en Format des milliers sans espace
Range("N:N").Select
Selection.Replace What:=" ", Replacement:="'", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Et à partir de Summary:
Cells.Find(What:="Summary:", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Select
ActiveCell.Rows("1:4").EntireRow.Select
Selection.Replace What:=" ", Replacement:="'", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'MEP Centrage


Cells.Select
With Selection
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

'Création Suite
Cells.Find(What:="Closed P/L:", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(-1, 0).Range("A1").Select

ActiveSheet.Rows(ActiveCell.Row).EntireRow.Select

ActiveCell.Rows("1:30").EntireRow.Select
Selection.Cut
Sheets("MonHistoriqueAT").Select
Sheets.Add
ActiveCell.Cells.Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "Suite"
Sheets("MonHistoriqueAT").Select
Sheets("MonHistoriqueAT").Move Before:=Sheets(1)
'efface les formules qui ont été copiée par colonnes entière
Rows("8025:8025").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.ClearContents

'Création Suite 2
Sheets("Suite").Select
Cells.Find(What:="Working Orders:", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(-2, 0).Range("A1").Select
MaCelulle = ActiveCell.Address
ActiveSheet.Rows(ActiveCell.Row).EntireRow.Select
ActiveCell.Rows("1:30").EntireRow.Select
Selection.Cut
Sheets("Suite").Select
Sheets.Add
Sheets("Feuil2").Select
ActiveCell.Cells.Select
ActiveSheet.Paste
Sheets("Feuil2").Move After:=Sheets(3)
Sheets("Feuil2").Name = "Suite2"

' Px Pip
Sheets("Suite").Select
Range("P5:P20").FormulaR1C1 = "=IF(RC[-15]"""",ABS(RC[-2]/(RC[-10]-RC[-6])),"""")"
Range("Q5:Q20").FormulaR1C1 = _
"=IF(RC[-16]"""",IF(RC[-1]>100,RC[-1]/100000,RC[-1]),"""")"

End Sub

'WAF pour BidAsk
' pour le bouton Forcer faire une formule de chaque en commencant par name, puis ask et bid,
'pourquoi ne pas le faire des le départ ?
'MODIFIER LA PROCéDURE Sub BidAsk() PAR ForcerBidAsk() ET TENTER DE SUPPRIMER LE BOUTON FORCER
Sub formulejd()

Range("A5:D20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("C7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Item
Windows("MonHistoriqueAT.xls").Activate
Sheets("Suite").Select
Range("E5:E20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("H7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'PxPIP en I
Windows("MonHistoriqueAT.xls").Activate
Sheets("Suite").Select
Range("Q5:Q20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("I7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Px
Windows("MonHistoriqueAT.xls").Activate
Sheets("Suite").Select
Range("F5:F20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("K7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'SL
Windows("MonHistoriqueAT.xls").Activate
Sheets("Suite").Select
Range("G5:G20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("Q7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'TP
Windows("MonHistoriqueAT.xls").Activate
Sheets("Suite").Select
Range("H5:H20").Select
Selection.Copy
Windows("Journal dynamique v0.1.xls").Activate
Range("V7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'
' 'L et M représentent R MAX et proviennent de l'onglet MM
' 'N et O représentent le ration Bénéfice/Risque et provient de l'onglet MM
'

'
'
''MEP
' 'Interior.ColorIndex = gris clair
' Range("C8:AG8,C10:AG10,C12:AG12,C14:AG14,C16:AG16,C18:AG18,C20:AG20,C22:AG22"). _
' Select
' Selection.Interior.ColorIndex = 15
' 'Interior.ColorIndex = bleu clair
' Range("C7:AG7,C9:AG9,C11:AG11,C13:AG13,C15:AG15,C17:AG17,C19:AG19,C21:AG21"). _
' Select
' Selection.Interior.ColorIndex = 37
'
' 'style bordure int. blanche
' Range("C5:AG22").Select
' Selection.Borders(xlDiagonalDown).LineStyle = xlNone
' Selection.Borders(xlDiagonalUp).LineStyle = xlNone
' Selection.Borders(xlEdgeLeft).LineStyle = xlNone
' With Selection.Borders(xlEdgeTop)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = 2
' End With
' Selection.Borders(xlEdgeBottom).LineStyle = xlNone
' Selection.Borders(xlEdgeRight).LineStyle = xlNone
' With Selection.Borders(xlInsideVertical)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = 2
' End With
' With Selection.Borders(xlInsideHorizontal)
' .LineStyle = xlContinuous
' .Weight = xlThin
' .ColorIndex = 2
' End With
'
'
'
'
'
'
'Equité, Balance, marge, marge dispo
' Equité
Range("F24").Select
ActiveCell.FormulaR1C1 = "=+[MonHistoriqueAT.xls]Suite2!R10C9"

' 'Balance
' Range("AK24").Select
' ActiveCell.FormulaR1C1 = "=+[MonHistoriqueAT.xls]Suite2!R10C4"
' Equité
' Range("F24").Select
' ActiveCell.FormulaR1C1 = "=+[MonHistoriqueAT.xls]Suite2!R10C10"
' 'Marge
'Range("I24").Select
'ActiveCell.FormulaR1C1 = "=+[MonHistoriqueAT.xls]Suite2!R9C14"
'Marger Disp ? N24
'Marge Limite ? T24

'
'
' '????
' 'Range("M24:O24").Select
' 'ActiveCell.FormulaR1C1 = "=+[MonHistoriqueAT.xls]Suite2!R10C14"
'
'
'
'
'
' 'Clignotement : Créer un Format/Style/"Flashing
' 'If Range("R7:R22") = 0 Then
' 'StartFlash
'
'
' 'ActiveWorkbook.Save
''
'' Windows("MonHistoriqueAT.xls").Activate
'' ActiveWorkbook.Save
'' ActiveWorkbook.Close
'
End Sub

Sub BidAsk()

M85RepriseCalculs
'Ligne 7 F1
Dim a As String
Dim ag As String
a = [AK7]
ag = [AL7]
[AD7].FormulaLocal = a
[AE7].FormulaLocal = ag

'Ligne 8 F2
Dim c As String
Dim d As String
c = [AK8]
d = [AL8]
[AD8].FormulaLocal = c
[AE8].FormulaLocal = d

'Ligne 9 F3
Dim e As String
Dim f As String
e = [AK9]
f = [AL9]
[AD9].FormulaLocal = e
[AE9].FormulaLocal = f

'Ligne 10 F4
Dim g As String
Dim h As String
g = [AK10]
h = [AL10]
[AD10].FormulaLocal = g
[AE10].FormulaLocal = h

'Ligne 11 F5
Dim i As String
Dim j As String
i = [AK11]
j = [AL11]
[AD11].FormulaLocal = i
[AE11].FormulaLocal = j

'Ligne 12 F6
Dim k As String
Dim l As String
k = [AK12]
l = [AL12]
[AD12].FormulaLocal = k
[AE12].FormulaLocal = l

'Ligne 13 F7
Dim M As String
Dim n As String
M = [AK13]
n = [AL13]
[AD13].FormulaLocal = M
[AE13].FormulaLocal = n

'Ligne 14 F8
Dim o As String
Dim p As String
o = [AK14]
p = [AL14]
[AD14].FormulaLocal = o
[AE14].FormulaLocal = p

'Ligne 15 F9
Dim q As String
Dim R As String
q = [AK15]
R = [AL15]
[AD15].FormulaLocal = q
[AE15].FormulaLocal = R

'Ligne 16 F10
Dim ah As String
Dim t As String
ah = [AK16]
t = [AL16]
[AD16].FormulaLocal = ah
[AE16].FormulaLocal = t

'Ligne 17 F11
Dim u As String
Dim v As String
u = [AK17]
v = [AL17]
[AD17].FormulaLocal = u
[AE17].FormulaLocal = v

'Ligne 18 F12
Dim w As String
Dim X As String
w = [AK18]
X = [AL18]
[AD18].FormulaLocal = w
[AE18].FormulaLocal = X

'Ligne 19 F13
Dim Y As String
Dim z As String
Y = [AK19]
z = [AL19]
[AD19].FormulaLocal = Y
[AE19].FormulaLocal = z

'Ligne 20 F14
Dim aa As String
Dim ab As String
aa = [AK20]
ab = [AL20]
[AD20].FormulaLocal = aa
[AE20].FormulaLocal = ab

'Ligne 21 F15
Dim ac As String
Dim ad As String
ac = [AK21]
ad = [AL21]
[AD21].FormulaLocal = ac
[AE21].FormulaLocal = ad

'Ligne 22 F16
Dim ae As String
Dim af As String
ae = [AK22]
af = [AL22]
[AD22].FormulaLocal = ae
[AE22].FormulaLocal = af

' M84StopCalculs

End Sub

'Sub ForcerBidAsk()
'
''Range("AD7").Select
' 'ActiveCell.FormulaR1C1 = Range("AD5").Value & Range("H7").Value
'
'Range("AD27").Select
'ActiveCell.FormulaR1C1 = "=MT4|NAME!Gold"
''ActiveCell.FormulaR1C1 = "=MT4|ASK!GOLD"
''ActiveCell.FormulaR1C1 = "=MT4|BID!Gold"
''
''
''
''
''
''
''
''
''ActiveCell.FormulaR1C1 = "=MT4|NAME!" & [H7].Value
''ActiveCell.FormulaR1C1 = "=MT4|BID!" & [H7].Value
''ActiveCell.FormulaR1C1 = "=MT4|NAME!Ger30dec12"
''ActiveCell.FormulaR1C1 = "=MT4|ASK!ger30dec12"
''ActiveCell.FormulaR1C1 = "=MT4|BID!ger30dec12"
''Selection.ClearContents
'
'End Sub
'
''Sub StartFlash()
''Dim NextTime As Date
'NextTime = Now + TimeValue("00:00:03")
'With ActiveWorkbook.Styles("Flashing").Font
'If .ColorIndex = xlAutomatic Then .ColorIndex = 3
'.ColorIndex = 5 - .ColorIndex
'End With
'Application.OnTime NextTime, "StartFlash"
'End Sub
'
'Sub StopFlash()
''On Error Resume Next
'Application.OnTime NextTime, "StartFlash", Schedule:=False
'ActiveWorkbook.Styles("Flashing").Font.C… = xlAutomatic
'End Sub
'
'


RépondreQuote
Lucie
Membre Actif
Inscription :il y a 4 années 
Posts : 11
13 novembre 2013 16 h 07 min  

@Fabtrader wrote:

Bonsoir à tous,
Pouvez-vous me dire si il existe une formule pour calculer ses gains et ses pertes sur le Forex? en fait si je rentre une position et que je ne veux pas dépasser une pertes de 10 € et un gain de 15 € comment calculer mon stop loss et mon stop limite?

Bonjour,
certain brokers te proposent aussi des calculateurs. Il suffit juste de rentrer tes données, et tu as le nombre de pips, ou la valeur où il faut passer tes stop loss et take profit.


RépondreQuote
Gilles Santacreu
Member Admin
Inscription :il y a 6 années 
Posts : 475
13 novembre 2013 23 h 11 min  

il y a un calculateur ici : http://boursikoter.com/calcul-de-lexposition-forex


RépondreQuote
Page 3 / 3 Retour
  
En travaux

S'il vous plait Connexion ou Inscription

activtrades

activtrades

%d blogueurs aiment cette page :