[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 139

 
CLAIN:

O interessante é que o depósito é suficiente - eu tenho uma grande reserva lá.
Imediatamente após a abertura de uma posição, dê um erro na impressão() e veja o motivo.
 

Pergunta.

Eu escrevi um indicador. As principais funções Ordem e Conta utilizadas são Símbolo() em todos os lugares iFechar iOpen. Mas por alguma razão, o indicador funciona SOMENTE em EURUSD............ Eu tentei outras ferramentas penduradas ((.

A essência do indicador: exibe informações sobre a Conta, Fundos Livres, ko número de lotes a abrir, quanto está aberto, a relação Lucro/risco no dinheiro, configurada APENAS se (OrderSymbol()!=Symbol()) continuar;

Reexaminou o motivo 10-20 vezes. Eu não entendo...((((

Obrigado de antemão

 
sergeev:

assinale

Acontece que todos os indicadores no MT4 do grupo de volume mostram um volume de tiquetaque?
 
paladin80:
Imediatamente após abrir uma posição, imprima() e veja o motivo do erro.


O interessante é que não há problemas com o testador. Desde 2000 até hoje, tem funcionado sem nenhum dreno.

o código ajudaria?

//+------------------------------------------------------------------+ 
//| StMartin.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

    extern int TP = 1000; 
    extern int TS = 1000; 
    extern double lots = 1.0; 

    double volumz; 
    int ticket,total; 
    int slip = 3; 
    int Magic = 7; 

 


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 

        ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"First order",Magic,0,Yellow); //открываем первый ордер 
 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 

OrderOpenFunction(); 
StrahBuy();
StrahSell();

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 

void OrderOpenFunction()
{
   OrderSelect(ticket,SELECT_BY_TICKET);
   if(OrderCloseTime()>0)
   {
      
      total = OrdersTotal();
      Comment("OrderCloseTime = ",OrderCloseTime()," ms");
      if(total < 1) 
      { 
         OrderSelect(ticket,SELECT_BY_TICKET); 
         volumz = OrderLots(); 
         Print("Orderlots = ", OrderLots());
         if(OrderType() == OP_BUY)
         {
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               double lot1 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
            }
         }
         if(OrderType() == OP_SELL)
         {
            if(OrderClosePrice()-OrderOpenPrice()<0)
            {
               ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
            }
            if(OrderClosePrice()-OrderOpenPrice()>0)
            {
               double lot2 = volumz*2; 
               ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
            }
         }
      }
   }    
}      
  
void StrahBuy()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_BUY)
      {
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            double lot1 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red); 
         }
      }      
   }
}

void StrahSell()
{
   total = OrdersTotal();
   if(total<1)
   {
      OrderSelect(0,SELECT_BY_POS);
      if(OrderType() == OP_SELL)
      {
         if(OrderClosePrice()-OrderOpenPrice()<0)
         {
            ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
         }
         if(OrderClosePrice()-OrderOpenPrice()>0)
         {
            double lot2 = volumz*2; 
            ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
         }
      }
   }   
}

Quero dizer, tenho uma função principal aqui e as outras duas apenas duplicam-na. Eu o fiz como seguro, mas ainda assim não funciona.

 
CLAIN:


o interessante é que não há problemas com o testador. Tem funcionado desde 2000 até hoje sem drenagem.

talvez o código ajude?

ou seja, tenho uma função principal aqui e as outras duas apenas duplicam-na. Fê-lo para o seguro, mas ainda assim deixa de funcionar

Código muito estranho. Estou muito confuso pelo fato de que você abre uma posição na inicialização e procura por pedidos sem operador. Nunca tinha visto nada parecido antes. Insira Imprimir () em seu código. Confie em mim, isso ajuda.
 
CLAIN:


O interessante é que no testador não há problema. Tem funcionado desde 2000 até hoje sem drenar.

o código ajudaria?

Quero dizer, tenho uma função principal aqui e as outras duas apenas duplicam-na. Fê-lo como seguro, mas ainda assim deixa de funcionar.

Testador: pare a perda #68 em 1.2887 (1.2885 / 1.2887)
16:56:31 2010.07.15 15:04 EURUSD,M30: Pedidos = 1
16:56:31 2010.07.15 15:04 Testador: não há dinheiro suficiente para comprar 2,00 EURUSD a 1.2887 sl: 1.1885 tp: 1.2905 [2010.07.15 15:04]
16:56:31 2010.07.15 15:04 Testador: PrevBalance: 1838.36, PrevPL: 0.00, PrevEquity 1838.36, PrevMargin: 0.00, NewMargin: 2577, FreeMargin: -738.84
16:56:31 2010.07.15 15:04 martin EURUSD,M30: OrderSend error 134

acho que TP=1000 e SL=1000 é muito, mesmo que lotes=1,0))

Tente colocar um lote menor e TP=1000 e eu acho que você ficará feliz.

 

PEOPLE!!!!!!!!! Socorro!!! Por favor, reitere!!!! PERGUNTA ENTÃO: POR QUE o indicador abre em MT4 SOMENTE em EURUSD!!!!!!!!!!!!!!! Que mistério. Não há restrição de par no indicador, Symbol() está em toda parte, as principais funções na conta Ordem e Conta. Quando removo o indicador, ele não funciona em outro par também, ou melhor, o MT4 fica completamente pendurado até que eu o corte. Escrevi o indicador por mim mesmo. Eu não consigo entender este comportamento com outros pares. Como é um indicador longo, não quero exibi-lo. Mas garanto que não há nada de anormal nele para trabalhar sem problemas SOMENTE em eurodollar???????????????????????

PRO RESOLVER O QUEBRA-CABEÇA)))))))))))))))))))))))))))))))) Eu não tenho sorte.................

Aqui está um trecho sobre as funções utilizadas

++++++++++++++++++++++++++++++++++++ Skip Code

//--- Objetos de totais de delet
Del_comment("Tendência MN1");
Del_comment("Tendência W1");
Del_comment("Tendência D1");
Del_comment("Tendência H4");
Del_comment("Tendência H1");
Del_comment("ord .no: ");
Del_comment("ord .#: ");
//---
TRENDS("MN1 Trend",PERÍODO_MN1, 1,86, 33, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 42);
TRENDS("W1 Trend", PERÍODO_W1, 1.111, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("D1 Trend", PERÍODO_D1, 1,97, 48, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);
TRENDS("H4 Trend", PERÍODO_H4, 1.111, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj,12);
TRENDS("H1 Trend", PERÍODO_H1, 1,97, 62, Lab_Trend_Bull,Lab_Trend_Bear,Lab_Trend_Doj, 12);

str=StringLen(AccountCompany());
if(str<=31) shf=31-str;
senão
if(str>=31) shf=0;
Commen("NameCo",AccountCompany(), 1, shf, 40, "Times New Roman", color_Fon,7);
Commen("in",ABC v2, 1, 36, 51, "Times New Roman", color_Fon,11);
Commen("txt_symb",Symbol(), 1, 3, 64, "Times New Roman", color_Fon,16);

if(OffABC==verdadeiro)
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);

if(OffABC==falso)
{
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
int OneLot= MarketInfo(Symbol(),MODE_MARGINREQUIRED);
int TickValue= MarketInfo(Symbol(),MODE_TICKVALUE);

if(Dígitos==2) pips=100;
senão
if(Dígitos==3) pips=1000;
senão
if(Dígitos==4) pips=10000;
senão
if(Dígitos==5) pips=100000;

if(!IsConnected())
{
ObjectDelete("in+");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("noconnect", "no connected", 1, 7, 85, "Times New Roman", color_Loss,14);
}
senão
if(IsConnected())
{
ObjectDelete("off+");
ObjectDelete("noconnect");
Commen("in+", "INC", 1, 7, 51, "Times New Roman", color_Profit,10);
}

if(AccountCurrency()=="RUB")
{
EQ_USD= AccountEquity()/iClose("USDRUB",PERÍODO_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUB",PERÍODO_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUB",PERÍODO_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
senão
if(AccountCurrency()=="RUR")
{
EQ_USD= AccountEquity()/iClose("USDRUR",PERÍODO_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())/iClose("USDRUR",PERÍODO_M1,0);
PRF_USD= AccountProfit()/iClose("USDRUR",PERÍODO_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())/(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())/OneLot;
ObjectDelete("nodepo");
}
senão
if(AccountCurrency()=="EUR")
{
EQ_USD= AccountEquity()*iClose("EURUSD",PERÍODO_M1,0);
FreeMargin_USD= (AccountFreeMargin()-AccountStopoutLevel())*iClose("EURUSD",PERÍODO_M1,0);
PRF_USD= AccountProfit()*iClose("EURUSD",PERÍODO_M1,0);
LOT_01= (AccountFreeMargin()-AccountStopoutLevel())*(OneLot/10);
LOT_1= (AccountFreeMargin()-AccountStopoutLevel())*OneLot;
ObjectDelete("nodepo");
}
senão
if(AccountCurrency()=="USD")
{
EQ_USD= AccountEquity();
FreeMargin_USD= AccountFreeMargin()-AccountStopoutLevel();
PRF_USD= AccountProfit();
LOT_01= FreeMargin_USD/(OneLot/10);
LOT_1= FreeMargin_USD/OneLot;
ObjectDelete("nodepo");
}

if(IsConnected() && AccountCurrency()!="RUB" && AccountCurrency()!="RUR" && AccountCurrency()!="EUR" && AccountCurrency()!="USD")
{
ObjectDelete("in+");
ObjectDelete("noconnect");
Commen("off+", "OFF", 1, 7, 51, "Times New Roman", color_Loss,10);
Commen("depo_symbl",AccountCurrency(), 1, 112, 85, "Times New Roman", color_Equity_Account,14);
Commen("nodepo",impraticável",1, 7, 85, "Times New Roman",color_Free,14);
}
//---

if(Orders_OK==false) order=1;
caso contrário, pedir=0;

if(OrdensTotal()>=ordem)
{
for(int pos=OrdensTotal(); pos>=0; pos--)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()!=Symbol()) continua;
{
SUMM= SUMM+OrderLots();
SWAP=SWAP+OrderSwap();
COMMIS=COMMIS+OrderComission();
OpenPrice=Preço Aberto+Preço Aberto para Encomendas();

//--- // ORDENS DE BAÍA
if(OrderType()==OP_BUY)
{
baylot= OrderLots();
if(baylot>==1 && baylot<99.0)
{
bSL1= bSL1+(OrderStopLoss()));
bTP1= bTP1+(OrderTakeProfit()));
bOPN1= bOPN1+(OrderOpenPrice();
if(bSL1>0) bsumL1=bsumL1+1;
if(bTP1>0) bsumP1=bsumP1+1;
if(bOPN1>0) bsumO1=bsumO1+1;
}
if(baylot>=0,1 && baylot<0,99)
{
bSL01= bSL01+(OrderStopLoss()));
bTP01= bTP01+(OrderTakeProfit()));
bOPN01= bOPN01+(OrderOpenPrice();
if(bSL01>0) bsumL01=bsumL01+1;
if(bTP01>0) bsumP01=bsumP01+1;
if(bOPN01>0) bsumO01=bsumO01+1;
}
} //OP_BUY

++++++++++++++++++++++++++++++++++++++++++++++++++ Пропуск кода

Função

void TRENDS(string name, int PER, int n, int X, int Y, cor Lab_Trend_Bull, cor Lab_Trend_Bear, cor Lab_Trend_Doj, int rsm)
{
int A,B,a,b,cod;
duplo Fup,Fdw;
double OPEN= iOpen(Symbol(),PER,1);
double CLOSE= iClose(Símbolo(),PER,1);
duplo EMA21= iMA(Symbol(),PER,21,0,MODE_EMA,PRICE_CLOSE,1);
duplo EMA89= iMA(Symbol(),PER,89,0,MODE_EMA,PRICE_CLOSE,1);
nome da cadeia2;
color_trend;
bool FLEAT=false;

enquanto(A<1)
{
duplo FUPPER= iFractals(Symbol(),PER,MODE_UPPER,a);
if(FUPPER>0) { Fup=FUPPER; A++; }
a++;
}
enquanto(B<1)
{
double FLOWER= iFractals(Symbol(),PER,MODE_LOWER,b);
if(FLOWER>0) { Fdw=FLOWER; B++; }
b++;
}
if((FECHAR>=OPEN &&FECHAR>FW) || (FECHAR<=OPEN &&FECHAR>Fdw))
FLEAT=verdadeiro;

if(EMA21>EMA89 && FLEAT===verdadeiro)
{ cod= 114; color_trend=Lab_Trend_Doj; name2="EMA21>eme89"; } // touro
senão
if(EMA21<EMA89 && ((FECHAR>=OPEN &&FECHAR>=Fup) || (FECHAR<=OPEN &&FECHAR>=Fup))
{ cod=111; color_trend=Lab_Trend_Bull; name2="Fractal UPPER"; } // touro
senão
if(EMA21>EMA89 && ((FECHAR>=OPEN &&FECHAR>=Fup) ||| (FECHAR<=OPEN &&FECHAR>=Fup))
{ cod=110; color_trend=Lab_Trend_Bull; name2="EMA21>ema89 + FRACTAL UPPER"; } // touro
senão
if(EMA21<EMA89 && FLEAT===verdadeiro)
{ cod= 113; color_trend=Lab_Trend_Doj; name2= "ema21<EMA89"; } // urso
senão
if(EMA21>EMA89 && ((FECHADO<=OPEN &&FECHADO<=Fdw) || (FECHADO>=OPEN &&FECHADO<=Fdw))
{ cod=111; color_trend=Lab_Trend_Bear; name2="Fractal LOWER"; } // urso
senão
if(EMA21<EMA89 && ((FECHADO<=OPEN &&FECHADO<=Fdw) ||| (FECHADO>=OPEN &&FECHADO<=Fdw))
{ cod= 110; color_trend=Lab_Trend_Bear; name2="ema21<EMA89 + FRACTAL LOWER"; } // urso
senão
if(EMA21==EMA89 || FLEAT===verdadeiro)
{ cod= 110; color_trend=Lab_Trend_Doj; name2= "ema21===ema89 || Fractal"; } // doj

name=name+""+nome2;
if(PER===PERIOD_MN1) cod=111;
if(cod==110)
{ rsm=rsm+3; X=X-1; Y=Y-3; }

ObjectCreate(nome,OBJ_LABEL,0,0;)
ObjectSet(nome,OBJPROP_CORNER,n);
ObjectSet(nome,OBJPROP_XDISTANCE,X);
ObjectSet(nome, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,CharToStr(cod), rsm, "Wingdings",color_trend);
}
void Commen(string name, string txt, int n, int X, int Y, string shrift, color clr, int rsm)
{
ObjectCreate(nome,OBJ_LABEL,0,0,0);
ObjectSet(nome,OBJPROP_CORNER,n);
ObjectSet(nome,OBJPROP_XDISTANCE,X);
ObjectSet(nome, OBJPROP_YDISTANCE,Y);
ObjectSetText(name,txt,rsm,shrift,clr);
}

+++++++++++++++++++++++++++++++++++++++++++ e exibição

 
nlp2311:

...

+++++++++++++++++++++++++++++++++++++++++++ e saída


"+++++++++++++++++++++++++++++++++++++++++++ e saída na tela"

E aprenda como inserir o código corretamente. Sua folha não tem interesse para ninguém...

Leia tudo aqui.

 
Esqueci minha senha no Metatrader, como posso criar uma nova, com quem posso entrar em contato?
 
Processor_ua:
Esqueci minha senha no Metatrader, como posso criar uma nova senha?


Se você não apagou seu e-mail, consulte a guia do terminal "Caixa Postal" - Registrar uma nova conta...

Se você o apagou, por favor, entre em contato com sua corretora.

Razão: