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

 
ToLik_SRGV:

É verdade, acho que Rustam insinuou que

Sim, eu o li depois que o coloquei :)
 
Obrigado a todos vocês, vou voltar ao trabalho :)
 

EU NÃO ENTENDO PORQUE EXISTEM VARIÁVEIS GLOBAIS

#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

bool
b,s, 
bs,
ss,
bt,
st;
double 
bl,sl;  
//+------------------------------------------------------------------+

ELES SÃO USADOS PARA ABRIR PEDIDOS

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
if(bs==1&&bl==1)
{
    NewOrder1(OP_BUYLIMIT,Lot);

Today=TimeDay(TimeCurrent())
;}

return(0);}

//+------------------------------------------------------------------+
int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double LT=0; //Лот
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
   {PR=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;
    if(Lot>0) LT=3*Lot;
        }
int tic=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
if(tic<0) {Print(GetLastError());
        }else
        {
b=0;s=0;  
bs=0;
ss=0;
bt=0;
st=0;    
bl=0;sl=0; }
return(tic);}

SE UM PEDIDO TEM UM BILHETE MAIOR QUE 0, ESTA FUNÇÃO DEVE FUNCIONAR

else
        {
b=0;s=0; 
bs=0;
ss=0;
bt=0;
st=0;   
bl=0;sl=0; }

QUE DEVE MUDAR TODOS OS VALORES DAS VARIÁVEIS GLOBAIS PARA 0 E NÃO ABRIR UMA NOVA ORDEM NOVAMENTE,

MAS DE ALGUMA FORMA VOLTA À ABERTURA DO PEDIDO E ABRE NOVOS PEDIDOS A CADA NOVO TICK.

QUAL É A RAZÃO DESTE ESTRANHO FENÔMENO?

VARIÁVEIS GLOBAIS SÃO DEFINIDAS A PARTIR DAQUI QUANDO SE FECHA UMA ORDEM DE MERCADO

for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; 
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
       
         }
      }

TAMBÉM AQUI ESTÁ O ASSESSOR ESPECIALIZADO COMPLETO

Arquivos anexados:
test8_2.mq4  7 kb
 
FoxUA:

PESSOAS, AJUDEM-ME, NÃO ENTENDO...


Onde está o bloco que preenche estas variáveis com valores?
Eu gostaria de ver o código exato de seu consultor especializado em uma só peça, na forma em que ele é compilado e testado.
Não em pedaços, porque esta pergunta tem andado por aí por muito tempo, e foi respondida mais de uma vez, mas por causa destas peças, ninguém pode entender completamente o quadro completo do problema.

Portanto, por favor, mostre o quadro completo para que não haja confusão.

 
ToLik_SRGV:

Onde está o bloco que preenche estas variáveis com valores?
Gostaria de ver o código exato de sua EA em uma só peça, na forma em que ela é compilada e testada.
Não em pedaços, porque esta pergunta tem andado por aí por muito tempo, e já foi respondida muitas vezes, mas ninguém consegue entender completamente o quadro completo do problema por causa destas peças.

Portanto, por favor, mostre o quadro completo para que não haja confusão.

AQUI ESTÁ TODA A EA

Arquivos anexados:
test8_1.mq4  7 kb
 

perguntar no tópico "Escreverei um EA de graça" nem sempre recebe uma resposta?

 
diaspar:

perguntar no tópico "Escreverei um EA de graça" nem sempre recebe uma resposta?

Deixe-me perguntar-lhe, com que freqüência você vai trabalhar de graça?
Trata-se da freqüência com que eles respondem.
 
diaspar:

perguntar no tópico "Escreverei um EA de graça" nem sempre recebe uma resposta?

O tópico foi iniciado pelo iniciador do tópico. No entanto, ele recebeu muito mais pedidos do que é capaz de digerir. A lógica dita que ele deve responder - ele é quem deve exigir. O que você esperava?
 
FoxUA:

NÃO SEI O QUE HÁ DE ERRADO COM MINHA EA, TENTEI DE TUDO E O ÚNICO RESULTADO É 1 PARA CADA TICK + 1 ORDEM PENDENTE A ÚNICA COISA É QUE QUANDO EU FECHO OUTRO MERCADO UMA MUDA A VARIÁVEL ABRE OUTRA E ABRE UMA NOVA COM CADA TICK

Em andamento...

Muito provavelmente, o bug está no bloco preenchendo estas variáveis com valores (no for loop), já encontrei um erro (em OrderSelect()) lá, mas o resultado ainda não mudou. Parece ser um bug na lógica do bloco.

P.S.
Favor mudar para caixa de símbolo normal.

 
FoxUA:

O bug é óbvio, é claro, ele abre posições em cada tick, já que a ordem de perda na história não vai a lugar algum, então ele o encontra em cada tick e preenche os valores das variáveis de controle com os mesmos valores, e então o bloco de abertura de negócios aciona.