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
A condição de fechamento utiliza um sinal inverso, mas não funciona yNossos negócios só são fechados em stop ou takei. Qual é o seu motivo?
Errado.
Sua condição deve estar no início e a função de fechamento por trás do início.
int i;
//
void Start(){
if ((FMA1<GrossMA1 && FMA2>GrossMA2 && Bid<FMA1-Distanse*GetPoint()) // тут так надо бы Bid<NormalizeDouble(FMA1-Distanse*GetPoint(),Digits)
|| (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask>FRMA1+Distanse*GetPoint())){
for(i=OrdersTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) CloseOpBuySell(); // тут закроются все ордера и бай и селл
}
}
}// end start
void CloseOpBuySell()
{
for(i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic ) //свой магик
{
if(OrderType()==OP_BUY)
{
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,LawnGreen); {continue;}
}
if(OrderType()==OP_SELL)
{
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,LawnGreen); {continue;}
}
}
}
}
return;
}
Errado.
Se você precisar fechar por condições individuais e não todas de uma vez, então a função de fechamento deve ser diferente.Você deve ter a condição no início e a função de fechamento no início.
Certo, mas eu já o fiz e o enviei a ele, então ele não vai dizer nada.
{
//закрытие по МА-шкам
if (FMA1<GrossMA1 && FMA2>GrossMA2 && Bid<FMA1-Distanse*GetPoint()) CloseOpBuySell("BUY");
if (FRMA1>GrossMA1 && FRMA2<GrossMA2 && Ask>FRMA1+Distanse*GetPoint()) CloseOpBuySell("SELL");
return(0);
}
//----
//-----------------------------------+
void CloseOpBuySell(string TypeClose)
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn )
{
if(TypeClose=="BUY")
{
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3,LawnGreen);
}
if(TypeClose=="SELL")
{
if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3,LawnGreen);
}
}
}
}
}
É melhor contar com base nos fundos disponíveis do que com base no saldo. Caso contrário, você corre o risco de receber muito mais do que pode pagar no momento da abertura de uma negociação.
Você também precisa calcular a dependência da etapa do lote e, em seguida, verificar se o lote está dentro dos lotes máximo e mínimo permitidos na conta.
double lots,lotstep,free,margin, lotmin, lotmax;
lotmax=MarketInfo(Symbol(), MODE_MAXLOT);
lotmin=MarketInfo(Symbol(), MODE_MINLOT);
lotstep = MarketInfo(Symbol(), MODE_LOTSTEP);
reqmargin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
free=AccountFreeMargin();
lots = NormalizeDouble(lotstep*MathRound((free*MaximumRisk*0.01/reqmargin)/lotstep),2);
if (lots < lotmin) lots = lotmin;
if (lots > lotmax) lots = lotmax;
É melhor contar com base nos fundos disponíveis do que com base no saldo. Caso contrário, você corre o risco de receber muito mais do que pode pagar no momento da abertura de uma negociação.
Você também precisa calcular a dependência da etapa do lote e, em seguida, verificar se o lote está dentro dos lotes máximo e mínimo permitidos na conta.
double lots,lotstep,free,margin, lotmin, lotmax;
lotmax=MarketInfo(Symbol(), MODE_MAXLOT);
lotmin=MarketInfo(Symbol(), MODE_MINLOT);
lotstep = MarketInfo(Symbol(), MODE_LOTSTEP);
reqmargin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
free=AccountFreeMargin();
lots = NormalizeDouble(lotstep*MathRound((free*MaximumRisk*0.01/reqmargin)/lotstep),2);
if (lots < lotmin) lots = lotmin;
if (lots > lotmax) lots = lotmax;
Adiado:
Gevorg Hakobyan, 2016.12.08 15:26
Olá. Como posso obter uma lista de todos os pares de moedas existentes no Meta Trader 4? E como posso me manter a par de quaisquer mudanças na lista?Adiado:
Gevorg Hakobyan, 2016.12.08 15:26
Olá. Como posso obter a lista de todos os pares de moedas existentes no Meta Trader 4? E como estar ciente de qualquer mudança na lista?SymbolsTotal
Retorna o número de símbolos disponíveis (selecionados em MarketWatch ou todos).
intSymbolsTotal(
bool selecionado// verdadeiro - somente símbolos em MarketWatch
);
Parâmetros
selecionado
[em] Modo de solicitação. Pode aceitar valores verdadeiros ou falsos.
Valor retornado
Se selecionado é verdadeiro, o número de caracteres selecionados no MarketWatch é devolvido. Se falso, ele retorna o número total de todos os símbolos.
Adiado:
Gevorg Hakobyan, 2016.12.08 15:26
Olá. Como posso obter uma lista de todos os pares de moedas existentes no Meta Trader 4? E como estar ciente de qualquer mudança na lista?