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

 

Eu tenho um problema que chegou a um ponto ridículo. Erro na função de fechamento de ordem.

OrserClose(int tip){
if( tip==1){
for( i=0; i<OrdersTotal(); i++){
           if(true==OrderSelect( i, SELECT_BY_POS, MODE_TRADES)){
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Magic){
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
               }
           }
         }  
}

Dá um erro (em diferentes terminais)

EURCHF,M5: Erro de fechamento do pedido 4107

EURCHF,M5: preço inválido 1,48566000 para a função OrderClose


se eu fizer

OrderClose(OrderTicket(), OrderLots(),OrderClosePrice(),3, Violet);
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),3,Violet);

Mas quando eu escrevo OrderClose(...) não em uma função separada, mas em int start(), este erro não ocorre .

Qual é o problema e como resolvê-lo?



 
tente executar o ciclo do final ao início
for( i = OrdersTotal() - 1;  i > 0;  i--)
 
T-G >>:

У меня проблема до смешного дошла. Ошибка в функция закрытия ордера.

дает ошибку (причем в разных терминалах)

EURCHF,M5: OrderClose error 4107

EURCHF,M5: invalid price 1.48566000 for OrderClose function


если сделать

таже самая ошибка. но причем когда я пишу OrderClose(..) не в отдельной функции а в int start() то такой ошибки не возникает.

в чем дело и как вылечить?









normalizar o preço

 

int tick = 0, MaxTicks = 5;
bool SaveTickOn = 1;
string bid_s;

int start(){
   if( SaveTickOn){
      int rw_mode = FILE_CSV| FILE_READ| FILE_WRITE;
      if( tick == 0) rw_mode = FILE_CSV| FILE_WRITE;
      int handle1 = FileOpen("bids1.dat", rw_mode," ");
      bid_s = DoubleToStr(Bid,Digits); 
      FileWrite( handle1, bid_s);
      if(GetLastError() != 0) Alert("Error= ",GetLastError());
      Alert( tick,": ", bid_s);
      tick++;
      if( tick == MaxTicks) SaveTickOn = 0; 
      FileClose( handle1);
   }
   return(0);
}

Há um código simples para escrever em um arquivo com um adendo, mas por alguma razão a opção de adicionar a um arquivo

FILE_READ| FILE_WRITE 

não funciona.

O que pode ser?

 

Ponha este no início, ele fechará tudo com uma garantia, basta colocar nas condições...

if ( Close_) {
for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
OrderSelect( trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {

if ((OrderType() == OP_BUY) &&( условие закрытия для бай)) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue);
if ((OrderType() == OP_SELL)&&( условие закрытия для селл)) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red);
}
Sleep(1000);
}
}
}
 
Andrei01 >>:

Есть простейший код для записи в файл с добавлением, но почему то опция добавления в файл

не работает.

Что это может быть?

Também verifiquei que a função FileIsEnding(handle1) retorna zero, enquanto deveria ser 1, o que significa que deve haver um bug no MT4 no modo adicionar ao arquivo.

 
Andrei01 писал(а) >>

Também verifiquei que a função FileIsEnding(handle1) retorna zero, enquanto deveria ser 1, o que significa que deve haver um bug no MT4 no modo adicionar ao arquivo.

Você já tentou ir até o final do arquivo? FileSeek()

 
//+------------------------------------------------------------------+
//| Escrever cadeia para arquivo |
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text)
{
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

se (file_handle>0)
{
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, texto);
FileClose(file_handle);
}

}
Não há insetos, basta escrevê-lo corretamente. Esta função adiciona texto ao FileName .
 

Hi!

Estou tentando programá-lo eu mesmo!

Ajude-me a descobrir em que direção ir! Se você precisar urgente e rapidamente (para começar)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Há um certo indicador que consiste em dois MA

Precisamos criar um sinal sonoro na intersecção de dois MA com a mensagem exibida usando a função "MessageBox".

O que fazer?

1 Crie um script com a função "MessageBox".

2.Ou acrescentar uma condição ao código indicador com esta função?

3.Ou ligar um script existente ao indicador? Como ligá-los, se possível?

4.Ou é mais fácil criar um Expert Advisor?

Se eu tiver um, por favor me envie o código fonte de um simples Expert Advisor clássico com duas médias móveis

(condições EA...comprar se rápido МА cruza (ou toca) MA lento de baixo para cima

..............................sel se rápido МА atravessa (ou toca) um MA lento de cima para baixo

.............................. com a função StopLoss

.............................. com a função TakeProfit

.............................. com função Lote

Obrigado!

 
DRevodel писал(а) >>

Hi!

Tentando programar por conta própria!

Ajude-me a entender que direção tomar! Se você precisar urgente e rapidamente (para começar)

Há um certo indicador que consiste em dois MA

Você precisa criar um sinal sonoro na intersecção de dois MA com a saída da mensagem na tela usando a função "MessageBox".

O que fazer?

Ou acrescentar uma condição ao código indicador com esta função?

>> Muito obrigado!