[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 482
![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
Escreva uma função bool() para verificar se a diferença entre o preço e a parada estabelecida é maior do que o StopLoss (do marketinfo)
então verdadeiro senão falso.
Então, antes de abrir uma ordem, você deve verificar se(função()) e abrir uma ordem.
Por que eu preciso disso se eu definir um stop loss 30% mais do que stop loss nesta empresa de corretagem?
2 e 3 pontos estão errados. Certo: Stop Loss e Take Profit para compra, Stop Loss e Take Profit para venda, partindo de Ask, Stop Loss e Take Profit para venda, partindo de Bid.
O cheque é simples. Calcule que ganho, se o takeprofit for acionado, você terá com sua variante. Não será igual a TakeProfit em pontos. Na variante proposta, ela será exatamente igual.
Portanto, modifiquei como antes e obtive o mesmo resultado. Deixei apenas a normalização de preços.
Mas o erro no testador permanece e o mais interessante é que ele se repete não para todas as ordens, mas para algumas delas.
Tem erro 4107 para 1 de cada 10 pedidos e devolve os outros 9 sem erros.
Помогите пожфлуйста с индикаторами: 1-й чтобы не убирал разметку на графике. 2-й чтобы лини старших ТФ были внешними на младших и чтобы можно было задать отоброжение(после того как задаешь отоброжение сразу все нормально пока не перещелкнешь ТФ,после этого все линии младших ТФ на старших)нии младших ТФ на старших)
Por que preciso disso se eu estabeleço um Stop Loss 30% a mais do que o Stop Level em minha corretora?
Por isso, redizi como estava e o resultado ainda é o mesmo, só me resta a normalização de preços.
Mas o erro no testador permaneceu e o mais interessante é que eu tenho erros em algumas ordens e não em todas elas.
Para 1 de 10 ele deu o erro 4107, e os outros 9 são processados sem erros.
Mostre-me o código, vamos dar uma olhada nele.Народ, у меня проблема, причем никак не могу допетрить в чем дело, особо не пинайте.
Есть стандартный MACD, хочу в индикаторе отметить все пики столбцов (значками), вот код:
Таким образом я нарисовал все экстремумы в индикаторе. Всё ОК, НО!
Когда функцией Print я вывожу значения всех найденых пиков
то вот что выходит:
Я так понимаю что 2147483647 это нули или пустые значения?
Bem, ninguém pode ajudar? :)
Bem, ninguém pode ajudar? :)
O problema parece ser com as matrizes MAX e MIN.
Você os tem ligados aos amortecedores indicadores com SetIndexBuffer() ?
Sim, é claro :)
Você usa a função IndicatorBuffers()?
#property indicator_buffers 4
#property indicator_color1 MediumPurple
#property indicator_color2 MediumPurple
#property indicator_color3 Green
#property indicator_color4 Red
#property indicator_width3 1
#property indicator_width4 1
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
double MMACD1[];
double SMACD1[];
double MAX[];
double MIN[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(2,119);
SetIndexArrow(3,119);
SetIndexDrawBegin(1,SMACD1);
IndicatorDigits(Digits+2);
SetIndexBuffer(0,MMACD1);
SetIndexBuffer(1,SMACD1);
SetIndexBuffer(2,MAX);
SetIndexBuffer(3,MIN);
IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
return(0);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
MMACD1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
for(i=0; i<limit; i++)
SMACD1[i]=iMAOnArray(MMACD1,Bars,SignalSMA,0,MODE_SMA,i);
for(i=0; i<limit; i++)
{
if(MMACD1[i+1] > MMACD1[i+2] && MMACD1[i+1] > MMACD1[i])
MAX[i+1] = MMACD1[i+1];
if(MMACD1[i+1] < MMACD1[i+2] && MMACD1[i+1] < MMACD1[i])
MIN[i+1] = MMACD1[i+1];
}
for(i=0; i<limit; i++)
{
if (MAX[i+1] != EMPTY_VALUE)
Print(MAX[i+1]);
}
return(0);
}
//+------------------------------------------------------------------+