![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
se (1.4321 - 1.4361 - (20*2) <= 0), sinto muito, mas não entendo.
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) é o valor atual de mercado.
Você quer fechar quando o mercado atual (1.4321) estiver no SL ou abaixo dele (comprar). Isso ocorre quando o Bid-SL <= 0
Quando Bid-SL > 0, essa é a condição inicial.
SL=1,4361-(20*2) o valor de stop loss
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) é o valor atual de mercado.
Você quer fechar quando o mercado atual (1.4321) estiver no SL ou abaixo dele (comprar). Isso ocorre quando o Bid-SL <= 0
Quando Bid-SL > 0, essa é a condição inicial.
Obrigado por ter voltado. Confuso na forma como a expressão foi escrita. Com minha visão de túnel, eu estava me concentrando em um lado de venda, com uma expressão que tinha o sinal '=' localizado à esquerda da expressão. Vou trabalhar com isto e voltarei. Obrigado. O tempo e o esforço que você compartilha tem sido mais do que generoso.
Saúde
SL=1,4361-(20*2) o valor de stop loss
OrderClosePrice() ou Bid (Buy) ou Ask(Sell) é o valor atual de mercado.
Você quer fechar quando o mercado atual (1.4321) estiver no SL ou abaixo dele (comprar). Isso ocorre quando o Bid-SL <= 0
Quando Bid-SL > 0, essa é a condição inicial.
Olá WHRoeder
Só para ajudá-lo a se manter atualizado. Eu editei a resposta antes.
Também inseri a expressão no programa. Há muitas maneiras de interpretar a mesma idéia.
Obrigado por indicar a mais recente. Mas eis que esta expressão não mudou o resultado.
É como se o programa nunca olhasse para a condição. Talvez não olhe além da afirmação 'para'.
Estou olhando novamente para trás, para a codificação.
Obrigado por tudo.
////////////////////////////////////////////////////////////////////< 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