[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 693

 
Hedin:


Em forex, quase todos os servidores são gratuitos.

E mais ainda, quase todas as corretoras têm contas demo onde você pode negociar com dinheiro virtual ao invés de dinheiro real.

Obrigado, você pode me dar um link específico? Não posso procurar no Google. Mais uma vez, obrigado.
 
artmedia70:
O que é uma Margem de Chamada?
A Margin Call é uma condição que resulta em um fechamento forçado de uma posição.

Isto ocorre quando o saldo de sua conta (Patrimônio) atingiu zero da margem requerida (Margem) para o valor de todas as posições abertas.

A operação é automática. Em algumas empresas, a Margem de Chamada é fixada em 30% do patrimônio líquido.

Isto é [AccountFreeMargin() = AccountEquity() - Margem] ?

onde Margem -> total para todas as posições em aberto.




 
Guest77:
Obrigado, você pode dar ao plz um link específico? Não posso procurar no Google. Mais uma vez, obrigado.

Tudo o que você precisa fazer é baixar e instalar o MetaTrader 4 de qualquer corretor.

Você precisa abrir uma conta demo e está pronto para usá-la. Tudo é gratuito. Você pode encontrar um corretor através do Google, há muitos deles.

 

Olá a todos. Eu me deparei com um problema ao escrever um EA, sinto que o erro está em algum lugar na superfície, mas não consigo encontrá-lo. Ficarei feliz se alguém me disser o que devo fazer.

A essência do problema: foi-me pedido que acrescentasse uma parada de trilha em um dos EAs de Igor Kim para várias posições simultaneamente. Adicionei tudo, mas o resultado é ruim :( Trailing stop sempre se move em TStop.Sell e TStop.Buy points away from bid and ask, isto é, o preço sobe, trailing stop também sobe, o preço desce - trailing stop desce... Não preciso ligar para a equipe telepática, eu mesmo acrescentarei o código :)

int start()
{
 if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
    {
     CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
     start3();//запускаем трал
    }
  //бла-бла-бла, тут еще куча рабочего кода :)
}

Funções definidas pelo usuário:

void start3() 
 {
  if (ShowComment) {
    Comment(IIFs(AllSymbols, "AllSymbols  ", "")
           ,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+"  "
           ,IIFs(TSProfitOnly, "TSProfitOnly  ", "")
           ,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п  "
           ,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п  "
           ,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п  "
           );
  } else Comment("");

  string sy=IIFs(AllSymbols, "", NULL);
  SimpleTrailing(sy, -1, Magic);
 } 
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
              if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
                ModifyOrder(-1, pp-TStop.Buy*po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
              if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+TStop.Sell*po, -1);
              }
            }
          }
        }
      }
    }
  }
} 
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}
 

Quero saber se é possível passar os parâmetros especificados no código do indicador (não os parâmetros do próprio indicador) para outro indicador para processamento?

A segunda pergunta, como passar parâmetros do indicador para a EA e como esta EA se comportará no modo de teste?

Agradecemos antecipadamente!

 

Você está explicando isso de uma maneira muito complicada.

A maneira mais fácil de transferir para a MT via GlobalVariable é mais ou menos como uma prancheta. Um coloca o outro pega.

Mas, há muitas outras opções, elas são dependentes da situação. Como não há nenhuma situação, é difícil falar de opções. Será testado com o mesmo caráter.

 
zhuki:

Você está explicando isso de uma maneira muito complicada.

A maneira mais fácil de transferir para a MT via GlobalVariable é mais ou menos como uma prancheta. Um coloca o outro pega.

Mas, há muitas outras opções, elas são dependentes da situação. Como não há nenhuma situação, é difícil falar de opções. Será testado com o mesmo caráter.


A GlobalVariable não é encontrada na ajuda da MT, ....

sobre as variantes. Por exemplo, o cálculo é o seguinte, existe um indicador ziguezague, acrescentei um código definindo os padrões ao código ziguezague, tal como If (condição) se a condição for atendida, a =1 variável se não for atendida, a=0. Preciso passar este valor de variável para outro indicador, neste caso se a variável em tal indicador for igual a (a=1) faça o seguinte, se a=0. Trata-se de passar parâmetros entre indicadores.

e, respectivamente, na mesma forma para passar parâmetros do indicador para o Consultor Especialista. Quando eu testar no Testador de Estratégia, o Expert Advisor irá carregar o indicador para cálculo e passar os valores da variável para a EA? Ou ele irá pegar o erro porque a variável está inacessível porque ela está localizada no ambiente do indicador!

 

A mesma pergunta. Como transfiro dados de um indicador não-padrão para outro?

 
zhuki:

Você está explicando isso de uma maneira muito complicada.

A maneira mais fácil de transferir para a MT via GlobalVariable é mais ou menos como uma prancheta. Um coloca o outro pega.

Mas, há muitas outras opções, elas são dependentes da situação. Como não há nenhuma situação, é difícil falar de opções. Será testado com o mesmo caráter.

Você não pode chamá-lo como o iMA padrão pelo nome abreviado, por exemplo?
 
Abzasc:
Você não pode chamá-lo como o iMA padrão pelo nome abreviado, por exemplo?

Você pode chamá-lo, não há erros, mas como passar o parâmetro? Eu faço uma chamada, coloco o parâmetro entre parênteses (que eu chamo), mas na resposta, jurando que tal parâmetro não existe no indicador.