Sunday, 26 February 2017

Wise Amibroker Forex

Ce script Amibroker est uniquement à des fins éducatives. Je ne peux pas garantir l'exactitude de it8217s ni assumer aucune responsabilité pour votre utilisation de celui-ci. À utiliser à vos risques et périls. Ce n'est pas une interface de trading automatisée 8211 c'est strictement une interface interactive. Si vous voulez jouer avec lui, faites-le dans votre compte pratique. NON DÉVELOPPÉ POUR FOREX OU FUTURES 8211 STOCKS US SEULEMENT. Ce script vous permettra d'entrer graphiquement vos commandes pour les courtiers interactifs. Vous pouvez utiliser le diagramme pour sélectionner l'endroit où vous voulez entrer et où vous voulez placer les ordres stop loss et target exit. Une fois que vous avez sélectionné les niveaux de prix, vous pouvez transmettre l'ordre à TWS pour l'exécution. Il inclut certaines fonctionnalités avancées telles que l'ajustement automatique des tailles de commande basées sur les actions max, la taille maximale de la position et le montant maximum que vous êtes prêt à risquer sur un métier. Caractéristiques: - interface graphique pour sélectionner les pièces de commande - afficher les différents niveaux de prix de commande sur le graphique - paramètres configurables pour contrôler la taille de la position et le risque - entrer avec un marché, limiter ou arrêter la commande - sortir avec une ORCA entre crochets - afficher ou masquer Interface avec un clic sur le bouton sur le graphique - envoyer des commandes pour une exécution immédiate dans TWS ou simplement garer le jeu de commandes dans TWS pour que vous y exécutiez - état indépendant du symbole des valeurs de niveau de prix et de commande Limitations: - uniquement développé et testé US stocks (that8217s Tout ce que je négocie) - les contrats à terme et le levier de change et les détails contractuels ne sont pas pris en compte et ne devraient pas être échangés avec ce script. - les stocks étrangers n'ont pas été testés, donc ils peuvent ne pas fonctionner. - les positions actuelles ne sont pas reflétées dans l'interface Tags: amibroker Proposé par kaiji il ya environ 7 ans Similaires FormulasAFL est un langage de programmation spécial utilisé pour définir et créer des indicateurs personnalisés, scans, explorations, back-tests et commentaires gourou. Eléments lexicaux Ce chapitre décrit les différentes catégories d'unités mot-type (tokens) reconnues par l'interpréteur de langage AFL. Whitespace Whitespace est le nom collectif donné aux espaces (blancs), aux onglets, aux nouveaux caractères de ligne et aux commentaires. Les espaces blancs peuvent servir à indiquer où les marqueurs commencent et finissent, mais au-delà de cette fonction, tout espace blanc excédentaire est rejeté. Les commentaires sont des morceaux de texte utilisés pour annoter un programme. Les commentaires sont pour les programmeurs d'utiliser seulement ils sont retirés du code source avant l'analyse. Il existe deux façons de délimiter les commentaires: C-like commentaires et C comme commentaires. Un commentaire de type C est une séquence de caractères placée après la paire de symboles. Le commentaire se termine à la première occurrence de la paire suivant l'initiale. La séquence entière, y compris les quatre symboles de délimiteur de commentaire, est remplacée par un espace. Les commentaires de type C sont des commentaires d'une seule ligne qui commencent par utiliser deux barres obliques adjacentes () dans n'importe quelle position de la ligne et s'étendent jusqu'à la nouvelle ligne suivante. AFL n'autorise pas les commentaires imbriqués. AFL reconnaît cinq classes de tokens: identificateurs constants string-literals opérateurs ponctuateurs (également appelés séparateurs) Les identificateurs sont des noms arbitraires de toute longueur donnée aux fonctions et aux variables. Les identificateurs peuvent contenir les lettres (a-z, A-Z), le caractère de soulignement (quotquot) et les chiffres (0-9). Le premier caractère doit être une lettre. Les identificateurs AFL ne sont PAS sensibles à la casse. Les constantes sont des jetons représentant des valeurs numériques ou de caractère fixes. Les constantes numériques sont composées d'un entier décimal et éventuellement de la décimale et de la fraction décimale. Les constantes numériques négatives ont unary moins (-) préfixé. Constantes de chaîne, également appelées chaînes de caractères. Forment une catégorie spéciale de constantes utilisées pour traiter des séquences fixes de caractères et sont écrites comme une séquence de n'importe quel nombre de caractères entourés par des guillemets doubles: quot Ceci est littéralement une chaîne La chaîne vide (vide) est écrite quotquot. Les caractères à l'intérieur des guillemets peuvent inclure des séquences d'échappement (quotnquot - une nouvelle séquence d'échappement de ligne). Une expression constante est une expression qui se compare toujours à une constante. Ils sont évalués comme les expressions régulières. Punctuator (également appelé séparateur) dans AFL est l'un des caractères suivants: (). . Parenthèses (ouvrir (et fermer)) des expressions de groupe, isoler des expressions conditionnelles et indiquer des appels de fonction et des paramètres de fonction: dc (ab) substituer la priorité normale a (b AND c) OU (d ET e) expression conditionnelle func () La virgule (,) sépare les éléments d'une liste d'arguments de fonction Le point-virgule () est un terminateur d'instruction. Toute expression AFL légale suivie d'un point-virgule est interprétée comme une instruction, appelée instruction d'expression. L'expression est évaluée et sa valeur est rejetée (sauf Guru Commentaires où les valeurs de chaîne sont écrites dans la fenêtre de sortie) Le point (.) Est un opérateur d'accès aux membres. Il est utilisé pour appeler des méthodes d'objet COM. Si la variable myobj contient l'objet, on peut appeler les méthodes (fonctions) de l'objet myobj: Le signe égal () sépare les déclarations de variables des listes d'initialisation: x 5 Il indique également la valeur par défaut d'un paramètre Description de la fonction): macd (fast 12 slow 26) valeurs par défaut pour les arguments rapides et lents) Structure du langage Chaque formule dans AFL contient une ou plusieurs expressions. Chaque instruction DOIT être terminée par un point-virgule (). De cette façon, vous êtes en mesure de briser de longues expressions en plusieurs lignes physiques (afin de gagner en clarté) et AmiBroker sera toujours le traiter comme une seule déclaration jusqu'à ce que la terminaison de point-virgule. Exemples: Identifiers Les identificateurs dans AFL sont utilisés pour identifier les variables et les fonctions. Il existe des identifiants prédéfinis faisant référence aux tableaux et fonctions intégrés. Les plus importants sont les identificateurs de prix. Ils identifient des champs de prix spécifiques sur lesquels la formule doit fonctionner. Les identificateurs de tableau de prix valides sont ouverts. haute . faible . Fermer . le volume . Openint. moyenne . Les identificateurs de tableau de prix peuvent être abrégés comme indiqué dans le tableau suivant. Notez qu'il ne s'agit pas de cas particuliers. Stocker la valeur du second opérande dans l'objet spécifié par le premier opérande (8220simple affectation 8221). L'opérateur d'affectation attribue une valeur à une variable: où result est un identificateur de variable et expression est n'importe quelle expression numérique, de tableau ou de texte. Comme l'opérateur se comporte comme les autres opérateurs, les expressions qui l'utilisent ont une valeur en plus d'assigner cette valeur à la variable. Cela signifie que vous pouvez chaîner les opérateurs d'affectation comme suit: j k l 0 j, k, et l égal à zéro après l'exécution de l'instruction d'exemple. Attention: NE PAS confondre l'opérateur d'affectation () avec le contrôle de l'égalité () Ce sont deux opérateurs différents et vous ne devez pas utiliser assign () pour vérifier l'égalité. If (Nom () quotMSFTquot) FAUX. - opérateur d'affectation de variable utilisé au lieu d'égalité vérifier si (Nom () quotMSFTquot) CORRECT - opérateur d'égalité utilisé correctement Ceci est l'une des erreurs de codage les plus courantes répertoriées ici. Opérateurs arithmétiques Les opérateurs arithmétiques peuvent contenir les opérateurs mathématiques suivants: Obtention de l'OR inclusif au niveau du bit des premier et second opérandes stockent le résultat dans l'objet spécifié par le premier opérande typeof () operator L'opérateur typeof est utilisé de la manière suivante: typeof (operand) L'opérateur typeof retourne une chaîne indiquant le type de l'opérande non évalué. Opérande est la chaîne, la variable, l'identificateur de fonction ou l'objet pour lequel le type doit être renvoyé. Lors de la fourniture de l'identifiant, il doit être fourni seul, sans opérateurs arithmétiques, sans arguments supplémentaires et sans accolades. Si vous souhaitez vérifier le type de valeur renvoyée par la fonction, vous devez d'abord affecter la valeur de retour à une variable, puis utiliser typeof (variable). Les valeurs de retour possibles sont: quotundefinedquot - identificateur n'est pas défini quotnumberquot - opérande représente un nombre (scalaire) quotarrayquot - opérande représente un tableau quotstringquot - opérande représente une chaîne quotfunctionquot - opérande est un identifiant de fonction intégré quotuser functionquot - Fonction définie quotobjectquot - l'opérande représente l'objet COM quotmemberquot - l'opérande représente la fonction membre ou la propriété de l'objet COM quothandlequot - l'opérande représente la poignée Windows quotunknownquot - le type d'opérande est inconnu (ne devrait pas arriver) typeof l'opérateur permet entre autres choses de détecter des variables non définies dans Le code suivant montre le résultat de typeof () dans certaines situations courantes: x MACD () y LastValue (x) function testfun () return 1 Retour au début Retour au début Les informations contenues dans cet article s'appliquent au (x) produit (s) Printf (typeof (test) n) la variable non définie printf (typeof (1) n) nombre littéral printf (typeof (vérification) n) chaîne littérale printf (typeof (x) n) Variable printf (typeof (MACD) n) identificateur de fonction printf (typeof (testfun) n) identificateur de fonction utilisateur Priorité de l'opérateur et les parenthèses AFL supporte les parenthèses dans les formules. Les parenthèses peuvent être utilisées pour contrôler la priorité de l'opération (l'ordre dans lequel les opérateurs sont calculés). AmiBroker effectue toujours les opérations dans les parenthèses les plus internes d'abord. Lorsque les parenthèses ne sont pas utilisées, la préséance est la suivante (la priorité la plus élevée est indiquée en premier): (sans parenthèse) serait calculée par AmiBroker comme quotL 2quot plus HQ, puisque la division a une priorité plus élevée. Cela se traduirait par une valeur beaucoup différente que quelques mots au sujet des opérateurs incrémentation. Il y en a deux sortes: postfix et prefix. Les opérateurs unaires (et -) sont appelés opérateurs d'incrément ou de décrément 8220prefix8221 lorsque les opérateurs d'incrémentation ou de décrémentation apparaissent avant l'opérande. L'incrément et le décrément de Postfix ont une priorité plus élevée que les opérateurs d'incrément et de décrément de préfixe. Lorsque l'opérateur apparaît avant son opérande, l'opérande est incrémenté ou décrémenté et sa nouvelle valeur est le résultat de l'expression. J i i sera incrémenté en premier et le résultat (numéro 6) sera assigné à j. Le résultat de l'opération d'incrément ou de décrément postfix est la valeur de l'expression postfix avant l'application de l'opérateur incrément ou décrément. Le type du résultat est le même que celui de l'expression postfix mais n'est plus une valeur l. Une fois le résultat obtenu, la valeur de l'opérande est incrémentée (ou décrémentée). Jij sera affecté à la valeur de 5 (avant incrémentation), puis i sera incrémenté à 6. Accès aux éléments de tableau: - subscript operator Un identificateur de tableau suivi d'une expression entre crochets () est une représentation sous-indiquée d'un élément d'un tableau objet. Il représente la valeur de l'expression-ième élément du tableau. La constante BarCount donne le nombre de barres dans le tableau (telles que Close, High, Low, Open, Volume, etc.). Les éléments de tableau sont numérotés de 0 (zéro) à BarCount-1. BarCount ne change pas tant que votre formule continue l'exécution, mais elle peut changer entre les exécutions lorsque de nouvelles barres sont ajoutées, le facteur de zoom est modifié ou le symbole est modifié. Pour obtenir la première barre, vous pouvez utiliser le tableau 0, pour obtenir la dernière barre du tableau, vous pouvez utiliser le tableau BarCount - 1 Fermer 5 Représente le sixième élément (barre) du tableau de fermeture. Fermer 0 Représente la toute première barre disponible du tableau fermé. High BarCount - 1 Représente la dernière barre de High array. Matrices et matrices Les matrices sont des matrices bidimensionnelles de nombres. Pour créer une matrice, utilisez: myvarname Matrix (lignes, cols, initvalue) Pour accéder aux éléments de matrice, utilisez: myvarname row col où row est un index de ligne (0. nombre de lignes-1) et col est un index de colonne (0. nombre Des colonnes-1) Les matrices et leurs éléments supportent toutes les opérations arithmétiques et logiques scalaires (élément-sage). Tous ces opérateurs standard sont effectués sur des matrices élément-sage. Pour cette raison, par exemple, pour ajouter deux matrices, elles doivent être de la même taille (le nombre de lignes et de colonnes doit être identique). S'ils ne sont pas les mêmes, c'est à vous d'effectuer le calcul sur chaque élément via la boucle. Ainsi, vous pouvez par exemple ajouter, soustraire, multiplier, diviser deux matrices si elles ont les mêmes dimensions avec un seul appel. Matrice (5. 6. 9) matrice (5. 6.9) matrice 5 rangées 6 colonnes, valeur initiale 9 y Matrice (5. 6. 10) matrice 5 rangées 6 colonnes, valeur initiale 10 zy - z vous donnera 5 lignes de matrice et 6 colonnes remplies Éléments ayant la valeur 1 (différence entre 10 et 9). Toutes ces opérations sont effectuées ELEMENT-WISE. Vous pouvez également appliquer toute opération arithmétique et logique sur la matrice et la valeur scalaire. Ceci exécuterait l'opération élément-sage sur chaque élément de la matrice source et donnerait une valeur scalaire. M Matrice (10.10 0) m sera 10x10 matrice remplie de zéros z m z est maintenant aussi une matrice pour (i 0 i lt 10 i) z i 4 i remplissez z avec quelques autres valeurs, notez que m reste inchangé. Pour (i 0 i lt 10 i) TRACEF (gg, g, gn, i, mi 1, mi 4, zi 4) addition scalaire (élément sage) z 3 m 5 pour (i 0 i lt 10 i) TRACEF (gg , G, gn, i, mi 1, mi 4, zi 4) Il existe un opérateur spécial qui ne travaille que sur des matrices - c'est un produit matriciel. L'opérateur pour le produit matriciel est (le signe at). Le produit Matrix est la méthode de l'algèbre linéaire pour multiplier les matrices. Si vous écrivez CAB, il multiplie la matrice A (n, k) par la matrice B (k, m) pour produire la matrice C (n, m) de sorte que le nombre de colonnes dans la matrice A doit être égal au nombre de lignes dans la matrice B. Pour plus d'informations, consultez: en. wikipedia. orgwikiMatrixmultiplication La priorité de l'opérateur de produit matriciel est la même que (donc elle a plus de priorité que l'addition et la soustraction). A Matrice (1. 3) B Matrice (3. 2) matrice A 1, 4, 6 matrice B 2, 3 5, 8 7, 9 A 0 0 1 A 0 1 4 A 0 2 6 B 0 0 2 B 0 1 3 B 1 0 5 B 1 1 8 B 2 0 7 B 2 1 9 TRACEF (g g X 0 0, X 0 1) Compound statements (Blocks) Un énoncé composé est composé de zéro ou plusieurs énoncés contenus dans des accolades ( ). Un énoncé composé peut être utilisé n'importe où un énoncé est attendu. Les déclarations composées sont communément appelées 8220blocks.8221 (empruntées au langage C, les utilisateurs d'autres langages de programmation sont utilisés pour utiliser BEGIN pour) if (Montant gt 100) TRACE (Montant au-dessus de 100) Balance Balance Montant else Balance Balance - In Fonctions En plus des opérateurs mathématiques, AmiBroker contient plus de 70 fonctions intégrées qui effectuent des opérations mathématiques. La formule suivante consiste en une seule fonction qui donne les racines carrées des cours de clôture: La formule suivante se compose d'une seule fonction qui donne un indicateur RSI de 14 périodes: La formule suivante se compose de deux fonctions. Le résultat est la différence entre l'indicateur MACD et une moyenne mobile exponentielle de 9 périodes du MACD: Tous les appels de fonction doivent être constitués d'un identifiant de fonction (nom) suivi d'une paire de parenthèses. Comme cela a été éludé dans les exemples précédents, une fonction peut être nommée dans une fonction. La fonction imbriquée peut servir de paramètre de tableau de données de fonctions principales. Les exemples suivants montrent les fonctions imbriquées dans les fonctions: Le premier exemple calcule une moyenne mobile simple de 10 périodes d'un indice de force relative (RSI) à 15 périodes. Le second exemple calcule une moyenne mobile exponentielle de 20 périodes d'un RSI de 15 périodes, puis calcule une moyenne mobile simple de 10 périodes de cette moyenne mobile. Fonction conditionnelle IIF () La fonction iif () est utilisée pour créer des affectations conditionnelles. Il contient trois paramètres comme indiqué dans l'exemple suivant. L'énoncé ci-dessus mentionne (en anglais) comme suit: Si la fermeture d'aujourd'hui est supérieure à la moyenne mobile simple de 10 jours de la fermeture, affectez un RSI de 9 jours à la variable dynamicrsi, sinon, attribuez un RSI de 14 jours. La formule suivante affecte le volume positif148 à la variable volresult si la fermeture est supérieure au prix médian. Dans le cas contraire, le volume négatif est affecté. Si vous voulez simplement qu'une expression soit évaluée comme étant vraie ou fausse, elle peut être effectuée sans utiliser la fonction iif (). La formule suivante résultera en un 1 (vrai) ou un 0 (faux): Le même fait avec iif () donne les mêmes résultats, mais la formule est plus longue. Veuillez noter que l'IIF est une fonction - le résultat de l'évaluation est renvoyé par cette fonction et doit être affecté à une certaine variable. IIf évalue toujours TRUEPART et FALSEPART, même s'il ne renvoie qu'une seule d'entre elles. Pour cette raison, vous devriez surveiller les effets secondaires indésirables. La fonction IIF n'est PAS une instruction de contrôle de flux. Si vous avez besoin d'un contrôle de flux (exécution conditionnelle de certaines parties de code), vous devriez rechercher l'instruction conditionnelle if-else décrite plus loin dans ce document. L'exemple suivant montre une erreur commune faite avec la fonction IIF: IIf (condition, résultat 7. résultat 9) CECI EST FAUX L'utilisation correcte est: résultat IIf (condition, 7. 9) 7 ou 9 est renvoyé et affecté à la variable de résultat selon Condition Afin de raccourcir, simplifier, améliorer et faciliter le maintien de formules complexes, vous pouvez utiliser des variables. En fait, en utilisant des variables, vous pouvez améliorer significativement la vitesse de calcul de la formule. Il est donc fortement recommandé d'utiliser des variables et il n'y a pas de limite sur le nombre de variables que vous pouvez définir. Une variable est un identifiant qui est affecté à une expression ou à une constante. Le nombre de variables utilisées dans une formule n'est pas limité. Les variables doivent être attribuées avant que la variable ne soit utilisée dans la formule. Les variables ne peuvent pas être affectées à un appel de fonction. Les noms de variables définis par l'utilisateur (identifiants) ne peuvent pas dupliquer des noms déjà utilisés par des fonctions (par exemple ma, rsi, cci, iif, etc.) ou des identificateurs de tableau prédéfinis (p. Ex. H, s, a). Variables réservées AmiBroker utilise certains noms de variables réservés dans ses formules, par exemple dans la fenêtre Auto-Analysis, vous devez affecter des valeurs à deux variables nommées buy ou sell pour spécifier les conditions où quotbuyquot et quotsellquot se produisent. Par exemple (système qui achète lorsque MACD monte au-dessus de 0 ligne et se vend quand MACD tombe en dessous de 0 ligne) AmiBroker utilise les noms de variable réservés suivants. Veuillez noter que les variables marquées comme obsolètes ne doivent PAS être utilisées dans le nouveau codage. Ils sont laissés pour la rétrocompatibilité seulement et les nouvelles formules devraient employer des fonctions modernes comme Plot () pour tracer des indicateurs et AddColumn () pour définir des colonnes d'exploration. graphe N couleur (obsolète) définit l'indice de couleur de N ème ligne du graphique (indices de couleur sont liés à la palette actuelle - voir PreferencesColor) colorCustom1 0 colorCustom2 1 colorCustom3 2 colorCustom4 3 colorCustom5 4 colorCustom6 5 colorCustom7 6 colorCustom8 7 colorCustom9 8 colorCustom10 9 colorCustom11 10 colorCustom12 11 colorCustom13 12 colorCustom14 13 colorCustom15 14 colorCustom16 15 CouleurNoir 16 colorBrown 17 colorDarkOliveGreen 18 colorDarkGreen 19 colorDarkTeal 20 colorDarkBlue 21 colorIndigo 22 colorDarkGrey 23 colorDarkRed 24 colorOrange 25 colorDarkYellow 26 colorGreen 27 colorTeal 28 CouleurBleu 29 colorBlueGrey 30 colorGrey40 31 colorRed 32 colorLightOrange 33 colorLime 34 colorSeaGreen 35 colorAqua 35 colorLightBlue 37 colorViolet 38 colorGrey50 39 colorPink 40 colorGold 41 colorYellow 42 colorBrightGreen 43 colorTurquoise 44 colorSkyblue 45 colorPlum 46 colorLightGrey 47 colorRose 48 colorTan 49 colorLightYellow 50 colorPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 CouleurBlanc 55 graphique N barColor (obsolète) définit le tableau qui Contient les index de la palette pour chaque barre dessinée le graphe N style (obsolète) définit le style de N e graphique. Le style est défini comme une combinaison (somme) d'un ou plusieurs drapeaux suivants: styleline 1 - normale (ligne) graphique (par défaut) styleHistogram 2 - histogramme styleThick 4 - graisse styleDots (épaisseur) 8 - comprennent 16 des points - pas de ligne styleLog 32 - l'échelle semi-logarithmique styleCandle 64 - graphique chandelier stylebar 128 - bar traditionnel tableau styleNoDraw 256 - pas de tirage (effectuer axe mise à l'échelle uniquement) styleStaircase 512 - styleSwingDots escalier (carré) de tableau 1024 - points intermédiaires pour tableau d'escalier styleNoRescale 2048 - pas rescale styleNoLabel 4096 - aucune étiquette de valeur stylePointAndFigure 8192 - point et la figure (nouveau en 4.20): styleArea 16384 - zone graphique (extra large histogramme) styleOwnScale 32768 - parcelle utilise indépendante 65536 mise à l'échelle de styleLeftAxisScale - parcelle utilise l'échelle de l'axe gauche (indépendante de l'axe droite) Toutes les combinaisons de drapeaux n'ont pas de sens, par exemple (641) (ligne de chandelier) se traduira par un tableau en chandelier (style64) Note sur les tableaux de chandeliers: ces styles utilisent indirectement des tableaux O, H, L en plus du graphe N. La formule ordinaire de graphique de prix de chandelier est graph0close graph0style64. Mais si vous voulez dessiner autre chose que de fermer le prix, vous devez affecter de nouvelles valeurs aux tableaux O, H, L prédéfinis. Graphe N barcolor (obsolète) définit le tableau des index de couleur pour les barres et les chandeliers dans le Nème graphe ine (les index de couleur sont liés à la palette courante - voir PreferencesColor)


No comments:

Post a Comment