Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 43

 
Dimka-novitsek: Mesmo assim, ainda está a lutar... Digamos acção=ORDER_TYPE_SELL, diz 'action' - identificador não declarado. OuENUM_ORDER_TYPE action=ORDER_TYPE_SELL, diz "acção" - símbolo inesperado. E assim por diante...

Então "o que é uma função e o que é uma chamada de função" ainda está por ler? :)

OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,i,last_tick.bid,margin); //параметры функции вставляются примерно так :)
 

Eu vou conseguir isso...

Eu não faço a função... Eu vou descobrir de onde veio! Desculpe se o enganei ou se entendi mal. Vou só...

Ah, aqui.

OrderCalcMargin

Calcula o montante da margem necessária para o tipo de ordem especificado na conta corrente e no ambiente actual do mercado, sem considerar as ordens pendentes e as posições em aberto. Permite-lhe estimar o montante da margem para o comércio planeado. O valor é devolvido na moeda da conta.
bool OrderCalcMargin(
Acção ENUM_ORDER_TYPE, // tipo de ordem
símbolo de corda, // nome do símbolo
volume duplo, // volume
preço duplo, // preço aberto
dupla& margem //variável para obter o valor da margem
);

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Dimka-novitsek:

Ainda se afoga... Digamos acção=ORDER_TYPE_SELL, diz 'action' - identificador não declarado. OuENUM_ORDER_TYPE action=ORDER_TYPE_SELL, diz "acção" - símbolo inesperado.

Está em todo o lado... E em inglês...

Dimitri!

Mais uma vez, estou a indicar-vos as secções de função e de chamada de função!


Definição da função:

int function (int a, int b)
{
   return (a+b);
}

primeiro vem o seu cabeçalho.

Tem o tipo de valor de retorno (int), nome da função e os seus parâmetros de entrada com os seus tipos!


chamada de função:

int c = 1;
int d = 5;
int summa;
summa = function(c, d);   // вызывается функция, фактические параметры переменные c и d
summa = function(1, 3);   // вызывается функция, фактические параметры числа 1 и 3
summa = function(1, d);   // вызывается функция, фактические параметры число 1 и переменная d

aqui primeiro definiu algumas variáveis (ou não)

e depois chama a função escrevendo entre parênteses para que números ou variáveis lhe chama.

 
Ah, eu vou declarar as variáveis acima da função!
 
Ugh!!! 0 erro(s), 0 aviso(s) 1 1 , Obrigado!!!
 
Por favor ajude-me, não me posso tornar um programador, por isso diga-me apenas o que fazer, tenho um Expert Advisor mql5 como o modificar para mql4, se não me puder dizer por favor!!!! ou em privado
 
fokeevis:
Ajude-me por favor, não me posso tornar um programador, por isso diga-me o que fazer, tenho um Expert Advisor mql5, como posso modificá-lo para mql4, se não for difícil falar-me sobre ele!!!! ou pessoalmente.
É complicado e muito difícil, especialmente para um não-programador, por isso tem razão em perguntar Jobs.
 
Desenvolvi uma função a pedido de alguém, deveria ser algo parecido com isto.
double GetLot(  double Risk,  ENUM_ORDER_TYPE  action ,  string  symbol ,   double  price ,  double   Lot  ){ 
                     double  volume=1,margin=1; 
                       if(!use_percent_of_deposit) return  (Lot) ; MqlTick last_tick;SymbolInfoTick(Symbol(),last_tick);
                                           switch(action)
     {
      case ORDER_TYPE_BUY: price=last_tick.asc ;
      case ORDER_TYPE_SELL: price=last_tick.bid ;
      case ORDER_TYPE_BUY_LIMIT: price=price;
      case ORDER_TYPE_SELL_LIMIT:  price=price;
      case ORDER_TYPE_BUY_STOP:  price=price;
      case ORDER_TYPE_SELL_STOP:  price=price;
      case ORDER_TYPE_BUY_STOP_LIMIT:  price=price;
      case ORDER_TYPE_SELL_STOP_LIMIT:  price=price;}
                     OrderCalcMargin(
         action,           // тип ордера
                  symbol,           // имя символа
                  volume,           // объем
                  price,            // цена открытия
                 margin            // переменная для получения значения маржи
                   ); 
         
         double  Koeffitsyenta=AccountInfoDouble(ACCOUNT_BALANCE)/ margin ;
         Lot= (Koeffitsyenta*Risk)/100;
         double Pt=1/SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP); 
          Lot= Lot*Pt; Print( "Lot*Pt  " ,  Lot   );
         Lot=NormalizeDouble(Lot,0); 
          Lot= Lot/Pt;
         double MAX=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
           double MIN=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
          if (Lot>MAX) Lot=MAX;if (Lot<MIN) Lot=MIN;
          return(Lot);
                 
                   }
Ainda não o compilei, não o testei, escrevi-o no Bloco de Notas.
 
Dimka-novitsek:
Desenvolvi uma função a pedido de alguém, deveria ser algo parecido com isto. Ainda não a compilei, ainda não a testei no trabalho, escrevi-a no Notepad.
Então, qual é a questão?
 

É possível fazer o spread no servidor MetaQuotes-Demo constante, porque a depuração, o ajustamento transforma-se num pesadelo, é preciso ter em conta o spread, que está em constante mudança e distorce a imagem????????

Apropagação flutuante é uma dor de cabeça desnecessária.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5