![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
si (1.4321 - 1.4361 - (20*2) <= 0), je suis désolé, mais je ne comprends pas.
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) est la valeur actuelle du marché.
Vous voulez fermer lorsque le marché actuel (1,4321) est égal ou inférieur (achat) au SL. Cela se produit lorsque Bid-SL <= 0
Lorsque Bid-SL > 0, c'est la condition initiale.
SL=1.4361-(20*2) la valeur du stop loss
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) est la valeur actuelle du marché.
Vous voulez fermer lorsque le marché actuel (1,4321) est égal ou inférieur (achat) au SL. Cela se produit lorsque Bid-SL <= 0
Lorsque Bid-SL > 0, c'est la condition initiale.
Merci de m'avoir répondu. J'ai été confus dans la façon dont l'expression a été écrite. Avec ma vision en tunnel, je me concentrais sur le côté vente, avec une expression qui avait le signe '=' situé à gauche de l'expression. Je vais travailler avec cela et revenir. Je vous remercie. Le temps et les efforts que vous partagez ont été plus que généreux.
Au revoir
SL=1.4361-(20*2) la valeur du stop loss
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) est la valeur actuelle du marché.
Vous voulez fermer lorsque le marché actuel (1,4321) est égal ou inférieur (achat) au SL. Cela se produit lorsque Bid-SL <= 0
Lorsque Bid-SL > 0, c'est la condition initiale.
Bonjour WHRoeder
Juste pour vous aider à rester à jour. J'ai modifié la réponse précédente.
J'ai également inséré l'expression dans le programme. Il y a tellement de façons d'interpréter la même idée.
Merci de m'avoir signalé la dernière. Mais voilà, cette expression n'a pas changé le résultat.
C'est comme si le programme ne regardait jamais la condition. Peut-être qu'il ne regarde pas au-delà de l'instruction 'for'.
Je regarde à nouveau le codage.
Merci pour tout.
////////////////////////////////////////////////////////////////////< 1> // < Property > //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </Property > //< >
////////////////////////////////////////////////////////////////////< 2> // < Content > //< > // //< > // < Structure 16 elements in 4 domains > //< > // < 1. Data 8 elements in 2 domains /> //< > // < 2. Code 8 elements in 2 domains /> //< > // </Structure 16 elements in 4 domains > //< > // //< > // < 1. Data 8 = 5 i 3 d - s > //< > // < 1.1. Input 7 = 4 i 3 d - s /> //< > // < 1.2. Buffer 1 = 1 i - d - s /> //< > // </1. Data 8 = 5 i 3 d - s > //< > // //< > // < 2. Code 8 / i 70 l 3 o > //< > // < 2.1. Interface 5 / - i 63 l 3 o /> //< > // < 2.2. Special 3 / - i 7 l - o /> //< > // </2. Code 8 / i 70 l 3 o > //< > // //< > // //< > // //< > // //< > // //< > // //< > // </Content > //< >
////////////////////////////////////////////////////////////////////< 3> // < 1.1. Data : Input > //< > // //< > // < 1.1. Input 7 = 4 i 3 d - s > //< > // < 1. Strategy 4 = 2 i 2 d - s /> //< > // < 2. Trading 3 = 2 i 1 d - s /> //< > // </1.1. Input 7 = 4 i 3 d - s > //< > // //< > // < 1. Strategy 4 >=========================================//< > int iBasePeriod = 20 ; //< > int iBaseBar = 1 ; //< > double dFactorTP = 2.0 ; //< > double dFactorSL = 2.0 ; //< > // </ 1. Strategy 4 >=========================================//< > // //< > // < 2. Trading 3 >==========================================//< > int iSlippage = 1 ; //< > int iMagic = 1 ; //< > double dLots = 0.1 ; //< > // </ 2. Trading 3 >==========================================//< > // //< > // //< > // //< > // </1.1. Data : Input > //< >
////////////////////////////////////////////////////////////////////< 4> // < 1.2. Data : Buffer > //< > // //< > // < 1.2. Buffer 1 = 1 i - d - s > //< > // < 1. Exception 1 = 1 i - d - s /> //< > // </1.2. Buffer 1 = 1 i - d - s > //< > // //< > // < 1. Exception 1 >========================================//< > int iTrap ; //< > // </ 1. Exception 1 >========================================//< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </1.2. Data : Buffer > //< >
////////////////////////////////////////////////////////////////////< 5> // < 2.1. Code : Interface > //< > // //< > // < 2.1. Interface 5 / - i 63 l 3 o > //< > // < 1. iSignalOpen - i 12 l 1 o /> //< > // < 2. iSignalClose - i 12 l 1 o /> //< > // < 3. iGetTrade - i 11 l 1 o /> //< > // < 4. iTryOpen - i 14 l - o /> //< > // < 5. iTryClose - i 14 l - o /> //< > // </2.1. Interface 5 / - i 63 l 3 o > //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </2.1. Code : Interface > //< >
////////////////////////////////////////////////////////////////////< 6> // < 2.1.1. Code : Interface : iSignalOpen > //< > // //< > int iSignalOpen () // - i 12 l 1 o //< > { //< > int iResult = EMPTY ; //< > // //< > int iIndexH = iHighest ( 0 , 0 , MODE_HIGH , iBasePeriod , //< > iBaseBar ) ; //< > int iIndexL = iLowest ( 0 , 0 , MODE_LOW , iBasePeriod , //< > iBaseBar ) ; //< > // //< > double dHigh = High [ iIndexH ] ; //< > double dLow = Low [ iIndexL ] ; //< > // //< > double dAsk = MarketInfo ( Symbol () , MODE_ASK ) ; //< > double dBid = MarketInfo ( Symbol () , MODE_BID ) ; //< > // //< > if ( dAsk > dHigh ) iResult = OP_BUY ; //< > if ( dBid < dLow ) iResult = OP_SELL ; //< > // //< > return ( iResult ) ; //< > } //< > // </2.1.1. Code : Interface : iSignalOpen > //< >
////////////////////////////////////////////////////////////////////< 7> // < 2.1.2. Code : Interface : iSignalClose > //< > // //< > int iSignalClose () // - i 12 l 1 o //< > { //< > int iResult = EMPTY ; //< > // //< > double dATR , dDelta , dLoss , dProfit ; //< > // //< > dATR = iATR ( 0 , 0 , iBasePeriod , iBaseBar ) ; //< > dDelta = OrderClosePrice () - OrderOpenPrice () ; //< > // //< > if ( OrderType () == OP_BUY ) //< > { dProfit = dDelta ; dLoss = -dDelta ; } //< > else if ( OrderType () == OP_SELL ) //< > { dProfit = -dDelta ; dLoss = dDelta ; } //< > else return ( EMPTY ) ; //< > // //< > if ( dLoss > dATR * dFactorSL ) iResult = TRUE ; //< > if ( dProfit > dATR * dFactorTP ) iResult = TRUE ; //< > // //< > return ( iResult ) ; //< > } //< > // </2.1.2. Code : Interface : iSignalClose > //< >
////////////////////////////////////////////////////////////////////< 8> // < 2.1.3. Code : Interface : iGetTrade > //< > // //< > int iGetTrade () // - i 11 l 1 o //< > { //< > int iResult = EMPTY ; //< > // //< > for ( int i = OrdersTotal () - 1 ; i >= 0 ; i -- ) //< > { //< > if ( OrderSelect ( i , SELECT_BY_POS ) == TRUE ) //< > if ( OrderMagicNumber () == iMagic ) //< > { //< > iResult = OrderTicket () ; //< > break ; //< > } // if //< > } // for //< > // //< > // //< > // //< > // //< > // //< > return ( iResult ) ; //< > } //< > // </2.1.3. Code : Interface : iGetTrade > //< >
////////////////////////////////////////////////////////////////////< 9> // < 2.1.4. Code : Interface : iTryOpen > //< > // //< > int iTryOpen () // - i 14 l - o //< > { //< > int iCommand = iSignalOpen () ; //< > if ( iCommand == EMPTY ) return ; //< > // //< > if ( iCommand == OP_BUY ) //< > { int iColor = Blue ; int iMode = MODE_ASK ; //< > string sType = "Buy" ; } //< > else { iColor = Red ; iMode = MODE_BID ; //< > sType = "Sell" ; } //< > double dPrice = MarketInfo ( Symbol () , iMode ) ; //< > // //< > OrderSend ( Symbol () , iCommand , dLots , dPrice , //< > iSlippage , 0 , 0 , "" , iMagic , 0 , iColor ) ; //< > // //< > iTrap = GetLastError () ; //< > if ( iTrap == 0 ) //< > Alert ( sType , " Was a Big Success" ) ; //< > else Alert ( sType , " open exception " , iTrap ) ; //< > } //< > // </2.1.4. Code : Interface : iTryOpen > //< >
////////////////////////////////////////////////////////////////////< 10> // < 2.1.5. Code : Interface : iTryClose > //< > // //< > int iTryClose () // - i 14 l - o //< > { //< > int iCommand = iSignalClose () ; //< > if ( iCommand == EMPTY ) return ; //< > // //< > if ( OrderType () == OP_BUY ) //< > { int iColor = Red ; //< > string sType = "Buy" ; } //< > else { iColor = Blue ; //< > sType = "Sell" ; } //< > if ( OrderProfit () > 0 ) string sV = "Take" ; else sV = "Stop" ; //< > // //< > OrderClose ( OrderTicket () , OrderLots () , OrderClosePrice () , //< > iSlippage , iColor ) ; //< > // //< > iTrap = GetLastError () ; //< > if ( iTrap == 0 ) //< > Alert ( sType , " closed with Hard " , sV ) ; //< > else Alert ( sType , " close exception " , iTrap ) ; //< > } //< > // </2.1.5. Code : Interface : iTryClose > //< >
////////////////////////////////////////////////////////////////////< 11> // < 2.2. Code : Special > //< > // //< > // < 2.2. Special 3 / - i 7 l - o > //< > // < 1. init - i 1 l - o /> //< > // < 2. deinit - i 1 l - o /> //< > // < 3. start - i 5 l - o /> //< > // </2.2. Special 3 / - i 7 l - o > //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // </2.2. Code : Special > //< >
////////////////////////////////////////////////////////////////////< 12> // < 2.2.1. Code : Special : Init > //< > // //< > int init () // - i 1 l - o //< > { //< > Alert ( "" , "Start " , UninitializeReason () ) ; //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > } //< > // </2.2.1. Code : Special : Init > //< >
////////////////////////////////////////////////////////////////////< 13> // < 2.2.2. Code : Special : Deinit > //< > // //< > int deinit () // - i 1 l - o //< > { //< > Alert ( "" , "Stop " , UninitializeReason () ) ; //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > } //< > // </2.2.2. Code : Special : Deinit > //< >
////////////////////////////////////////////////////////////////////< 14> // < 2.2.3. Code : Special : Start > //< > // //< > int start () // - i 5 l - o //< > { //< > // < 2.2.3.1. Main routine 3 >````````````````````````````````````//< > int iTicket = iGetTrade () ; //< > // //< > if ( iTicket < 0 ) iTryOpen () ; //< > else iTryClose () ; //< > // </2.2.3.1. Main routine 3 >````````````````````````````````````//< > // //< > // //< > // //< > // //< > // //< > // //< > // //< > // < 2.2.3.2. Exception handler 2 >```````````````````````````````//< > iTrap = GetLastError () ; //< > if ( iTrap > 0 ) Alert ( "Exception " , iTrap ) ; //< > // </2.2.3.2. Exception handler 2 >```````````````````````````````//< > } //< > // </2.2.3. Code : Special : Start > //< > ////////////////////////////////////////////////////////////////////< 0>
Adjust MetaEditor window to see 25 lines x 80 columns. Use <Page Up> and <Page Down> to scroll the content. State: Ready for optimization Last edit: 2010.03.15 11:48 Works fine on "EURUSD" D1 with original settings