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

 
lottamer:


por quê?

se o pedido não tiver sido aberto - o que você modificará?

loteria:

e é possível verificar My_buy (variável não-booleana) para TRUE-FALSE ?

então QUEM É O PRAGRAMISTA BOOCH aqui?! você sempre pode fazer um Booleano de um "não-Booleano"!!!

loteria:

a modificação vai incondicionalmente - a ordem está aberta - você tem que definir as paradas

é para isso que se verifica o fato de que o pedido está ABERTO.

Você deu corajosamente o próximo passo em seu conhecimento do idioma - você se familiarizou com a forma como as bibliotecas funcionam:

#include <WinUser32.mqh>

esta é a biblioteca - a padrão da entrega MetaTrader. As pessoas escrevem suas próprias bibliotecas (personalizadas). Exemplo de uma biblioteca contendo funções de ordem comercial. Estas funções são escritas uma vez e depois utilizadas em seus códigos, conforme necessário.

 
sergeev:
Então por que você o colocou dentro dos colchetes { } se (médias cruzadas, por exemplo)?


para que ele estivesse lá.

Onde você acha que ele pode ser inserido? somente imediatamente após a abertura de um pedido.

 
lottamer:

Estou me tornando uma mãe na frente dos meus olhos! (ou seja, tornar-se um matriarca!) :))

por que assim?

Eu só preciso procurar "O que é MessageBox()"? - via Ctrl+F1 no MetaEditor.
 
TarasBY:

se o pedido não fosse aberto - o que você modificaria?

então QUEM É O PRAGRAMISTA Booleano aqui?! você sempre pode fazer um Booleano de um "não-Booleano"!!!

é para isso que serve a verificação do mandado ABERTO.

Você deu corajosamente o próximo passo no aprendizado da língua - familiarizando-se com o funcionamento das bibliotecas:

esta é a biblioteca - a padrão da entrega MetaTrader. As pessoas escrevem suas próprias bibliotecas (personalizadas). Um exemplo de uma biblioteca contendo funções de ordem comercial. Estas funções são escritas uma vez e depois utilizadas em seus códigos, conforme necessário.


Se o pedido ainda não foi aberto, não pode ser modificado, pois não há nada a ser modificado. Ainda não terminei de escrever a EA inteira, estou escrevendo-a em blocos e verificando-a imediatamente, depois a termino e verifico novamente. Mas não creio que se um acordo não for aberto, então a EA será completamente desativada, porque não saberá o que fazer - há uma ordem para modificar e não há uma posição aberta. ))) abrirá nos próximos carrapatos... e depois modificará

2)BOH aqui você é único, pois eu, um pecador, nem entendo como é tão Boolean-innon-Boolean... Ou seja, há uma função utilizável e digamos que foi executada, ou seja, a pose aberta. Então agora a máquina vai entender que minha função utilizável agora é VERDADEIRA, porque foi executada? ..... desculpe por não saber a pergunta

3) ver 1

4)#incluir é um tópico que me envergonha demais para perguntar!

entendo corretamente, que teoricamente, digamos, a partir de meus scripts CLOSE_ALL e MODIFY, você pode fazer um#include ao invés de uma função personalizada e referir-se a ela.

mas como inserir este#incluiria My_buy após a condição de if?

 
TarasBY:
É apenas uma questão de procurar "O que é MessageBox()"? - via Ctrl+F1 no MetaEditor.

isto é uma nuance...e eu gostaria de terminar o Expert Advisor agora... :))
 

alguém sabe sobre o capotamento?

Quando os pedidos são reabertos com o capotamento, pode haver deslizamentos para os valores de parada e retirada? E como será definida a parada se após o capotamento a diferença entre o preço de abertura e parada será menor que o nivelador de parada?

Minha tarefa é a seguinte. Se eu tiver uma ordem de mercado aberta, devo verificar se ela foi aberta com o rollover e se foi, devo obter o bilhete da ordem anterior, que foi fechada. Talvez alguém me diga qual é o algoritmo de busca? Atualmente estou fazendo o seguinte:

1. Eu seleciono a primeira ordem aberta.
2. Se for aberto das 23:40 às 00:20, então continuo a verificar mais esta ordem (a janela de 40 minutos é tirada só para o caso, embora em teoria você poderia tirar das 23:50 às 23:59)
3. Lembro-me do bilhete, paro e tomo o preço
4.Eu verifico todos os pedidos fechados no histórico, e os comentários contêm a palavra "swap" e os pares de moedas combinam

5. Comparo os dados sobre paradas e aquisições, se corresponderem, aqui é o par de pedidos necessário, se não - volto ao passo 1

 

Por favor, diga-me o que se entende por

enquanto (verdadeiro)

no script do modificador que colei no EA?

e para que serve este estranho cheque

if(cmd===OP_BUY || cmd===OP_SELL) ?

Não seria melhor apenas verificar a presença de uma posição aberta?

int My_modify ()
 {
//      bool   result;
//      double stop_loss,take_profit,point,bid,ask, lotsize;
//      int    cmd, total, error, spread;
//      string message;
//----
   total=OrdersTotal();

//----
   for(int i=0; i<total; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         OrderPrint();
         cmd=OrderType();
         point=MarketInfo(OrderSymbol(),MODE_POINT);
         bid= MarketInfo(OrderSymbol(),MODE_BID);
         ask= MarketInfo(OrderSymbol(),MODE_ASK);
         spread=MarketInfo(OrderSymbol(),MODE_SPREAD);     
         //---- buy or sell orders are considered
         if(cmd==OP_BUY || cmd==OP_SELL)
          {
            //---- modify first market order
            while(true)
             {
                if(cmd==OP_BUY){
                        string type = "buy";
                        if(OrderStopLoss()!=0)stop_loss=OrderStopLoss();
                        else stop_loss=OrderOpenPrice()-StopLoss*point;
                        if(OrderTakeProfit()!=0)take_profit=OrderTakeProfit();
                        else take_profit=OrderOpenPrice()+TakeProfit*point;
                }
                     
                else{
                        type = "sell";
                        if(OrderStopLoss()!=0)stop_loss=OrderStopLoss();
                        else stop_loss=OrderOpenPrice()+StopLoss*point;
                        if(OrderTakeProfit()!=0)take_profit=OrderTakeProfit();
                        else take_profit=OrderOpenPrice()-TakeProfit*point;
                }   
                result=OrderModify(OrderTicket(), OrderOpenPrice(), stop_loss, take_profit, 0, CLR_NONE);
                if(result!=true) { error=GetLastError(); Print("LastError = ",error);}
                else {error=0;}
                if(error==135) RefreshRates();
                else break;
              }
                if(error==0){
                        //message=message+"Ордер #"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+" успешно модифицирован.\n";
                        }
                        else{
                                if(error == 130){string error_desc = " - Неправильные стопы";} else error_desc = "";
                                if(error != 1)
                        message=message+"Ошибка модификации ордера #"+OrderTicket()+" - "+type+" - "+DoubleToStr(OrderLots(), 2)+". "+error_desc+" \n";
                        }

              //---- print modified order (it still selected after modify)
              OrderPrint();
              continue;             
           }
        }
      else { Print( "Error when order select ", GetLastError()); break;}
     }
        int ret=MessageBox(message, NULL, MB_OK);
        if(ret==IDOK) return(0);
//----
   return(0);
  }
 
lottamer:

Esta é uma nuance ... e agora eu gostaria de terminar o assessor ...:))

Você quer "mover o carrinho" para "o nariz do Kucher". Com um baixo nível de conhecimento do idioma, você precisa começar a praticar com ele:

Pegue um Expert Advisor pronto para trabalhar, que está próximo de sua estratégia e modernize-o de acordo com suas necessidades - assim será mais rápido entender e compreender suas ações (na óbvia ausência do desejo de ler "The Primer").

Boa sorte!

P.S. AXIOMA: "Coachmen do not ride on carts!!!"

 
TarasBY:

Você quer "mover o carrinho" para "o nariz do Kucher". Com um baixo nível de conhecimento do idioma, você precisa começar a praticar com ele:

Pegue um Expert Advisor pronto para trabalhar, que está próximo à sua estratégia e atualize-a de acordo com suas necessidades - desta forma você entenderá e compreenderá suas ações mais rapidamente.

Boa sorte!

P.S. AXIOMA: "Coachmen don't drive carts!!!"


Eu praticamente faço... Eu olho para outros EAs, roteiros... e construo o que eu preciso :))
 
2012.12.07 16:14:28 tentativa141 GOLD,H1: nome do símbolo desconhecido 0 para a função OrderSend

depende do terminal ou do CD? ou tem algo alterado no código?