[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 334

 
khorosh:
Qual é a diferença entre POINT e TICKSIZE ? Quando você consulta através do MarketInfo() eles são os mesmos, mas por que eles deveriam ser diferentes se têm nomes diferentes?
Qual é a diferença entre o site POINT e TICKSIZE:mql4.com
 
khorosh:
Qual é a diferença entre POINT e TICKSIZE ? Quando consultados através do MarketInfo() eles são os mesmos, mas devem ser diferentes se tiverem nomes diferentes?

Algumas vezes eles são diferentes para os instrumentos individuais
 
Vinin:

Às vezes há uma diferença para os instrumentos individuais
Obrigado. Um ponto é como uma unidade de medida de um centavo. E tixais é a mudança mínima no preço. Aparentemente, os tixies não podem ser menos do que um pip e mais. Acho que cabe ao BC decidir.
 
Você pode me dizer se é possível executar uma macro da MQL em um livro do EXCEL (ele está aberto)?
 
rustein:
Como calcular o tamanho máximo permitido do lote com alavancagem, etc.?
Obrigado
double MeansOneLot       = MarketInfo(Symb,MODE_MARGINREQUIRED);      //Необходимо средств для открытия 1 лота
double MeansFree         = AccountFreeMargin();                       //Значение свободных средств, разрешенных для открытия позиций
double MeansGuaranty     = AccountMargin();                           //Значение залоговых средств, используемых для поддержания открытых позиций
double LotPriceTic       = MarketInfo(Symb, MODE_TICKVALUE);          //Стоимость 1 лота в валюте депо на 1 тик
double MaxLotPermissible = MathFloor((MeansFree/MeansOneLot)*100)/100;//Максимально допустимый лот для открытия позиции
 
joo:

Muito obrigado.
 

AJUDAR A ANEXAR O ARQUIVO AO TEXTO

 
Amigos, ajudem-me a resolver um problema... Tenho os números dos bilhetes escritos na matriz TicketArray (há 3 deles). Portanto, quero que minha EA pare de negociar quando eu tiver uma perda 3 vezes seguidas. Para começar, não posso escrever a condição de 3 lotes. A Serpente Boa uma vez me deu alguns conhecimentos sobre bandeiras e eu estou usando-as agora, mas ainda não funciona. Após o primeiro pedido fechar em prejuízo, torna-se realidade e depois funciona bem... Por quê?

bool flag = true; //по умолчанию флаг стоит на правду
for(int j=1;j<4;j++) //цикл из 3х значений (1,2,3)
{
OrderSelect(TicketArray[j],SELECT_BY_TICKET); //выбираю ордер

if(OrderClosePrice()!=OrderStopLoss() && TicketArray[j]==0)flag = false; //думаю, тут проблема. Условие: если ордер не получил лося 3 раза и если у тикета еще нет номера, то такая ситуация меня не устраивает.
Print(OrderClosePrice(),",,,,,",OrderStopLoss(),",,,,,",TicketArray[j]); //эта строчка для тестера, чтоб наглядно было видно цену закрытия, цену стопа и номер тикета. Хоть тикет и =0, но все равно пишет true.
}
Alert(flag);

Estou colando toda a EA só por precaução. Este é um martingale normal, que eu mesmo escrevi para fins educacionais.

//+------------------------------------------------------------------+
//| 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 int TF = 1; 
extern double lots = 0.1; 


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

int TicketArray[4];

void FormTicket(int number) //объявил шаблон под функцию запоминания тикетов
{
for(int i=3;i>0;i--)
{
TicketArray[0] = ticket;
if(TicketArray[0]>0 && TicketArray[0] == TicketArray[1])break;
TicketArray[i] = TicketArray[i-1];
} 
}

//+------------------------------------------------------------------+
//| 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()
{
//----
int OrderTimeCheck = check3(); //проверяем, закрыт ли ордер
bool OrderCloseCheck = check2(OrderTimeCheck); //проверяем, закрылись ли ордера в минус
FormTicket(ticket); //вызываем функцию, чтоб запоминала тикеты
ProfitCheck(OrderCloseCheck); //тут рисуем линии

total = OrdersTotal();
if(total < 1)
{
OrderSelect(TicketArray[1],SELECT_BY_TICKET);
volumz = OrderLots();
if(OrderProfit()<=0)
{
if(OrderType() == OP_BUY)
{ 
double lot1 = volumz*2;
ticket = OrderSend(Symbol(),OP_SELL,lot1,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Green);
}
if(OrderType() == OP_SELL)
{ 
double lot2 = volumz*2;
ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Red);
}
}
if(OrderProfit()>0)
{
if(OrderType() == OP_BUY)
{
ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,0,Magic,0,Green);
}
if(OrderType() == OP_SELL)
{
ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,0,Magic,0,Red);
}
} 

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


int check3() //проверяем, закрыт ли ордер
{
OrderSelect(TicketArray[1],SELECT_BY_TICKET);
if(OrderCloseTime()>0)return(100);
}

bool check2(int OrderTimeCheck) //проверяем, если ордер закрыт, то последние 3 закрытых ордера были ли убыточными?
{
if(OrderTimeCheck == 100)
{
bool flag = true;
for(int j=1;j<4;j++)
{
OrderSelect(TicketArray[j],SELECT_BY_TICKET);

if(OrderClosePrice()!=OrderStopLoss() && TicketArray[j]==0)flag = false; //ТУТ ДОДУМАТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Print(OrderClosePrice(),",,,,,",OrderStopLoss(),",,,,,",TicketArray[j]);
}
Alert(flag);
if(flag == true)
{
ObjectCreate("NewLabel",OBJ_LABEL,0,0,0);
ObjectSetText("NewLabel","Ура",14,"Arial",Aqua);
ObjectSet("NewLabel", OBJPROP_CORNER,1);
ObjectSet("NewLabel", OBJPROP_XDISTANCE,40);
ObjectSet("NewLabel", OBJPROP_YDISTANCE,40);
}
} 
}

void ProfitCheck(bool OrderCloseCheck)
{
if(OrderCloseCheck == true) 
{
Print("x");
} 
} 
 

Não consigo ler um dos amortecedores indicadores PerkyAsctrend1.
Por favor, ajude-me a descobrir. Já o fiz muitas vezes com outros indicadores, sempre sem problemas. Eu não posso fazer isso aqui.
Li dois buffers: um deles:
duplo PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5.250.0,1); - lê corretamente, o sinal é capturado, a próxima linha tenta capturar:
duplo PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5.250.1,1); mas todos os sinais neste buffer estão voando além do meu EA. Eu até tentei criar um Expert Advisor vazio com dois pontos de Comentário() com resultados. Não consigo obter um sinal para vender.
Você pode me ajudar a entender isso?
Eu gostaria de anexar o indicador
Arquivos anexados:
 
Qoren:

Não consigo ler um dos amortecedores indicadores PerkyAsctrend1.
Por favor, ajude-me a compreendê-lo. Já o fiz muitas vezes com outros indicadores, sempre sem problemas. Mas não está funcionando aqui.
Eu li dois amortecedores: um deles:
duplo PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5.250.0,1); - lê corretamente, o sinal é capturado, a próxima linha tenta capturar:
duplo PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5,250,1,1); e todos os sinais deste buffer passam por minha EA. Eu até tentei criar um Expert Advisor vazio com dois pontos de Comentário() com resultados. Não consigo obter um sinal para vender.
Você pode me ajudar a entender isso?
Eu gostaria de anexar o indicador

Sinal para Comprar em buffer 0, sinal para Vender em buffer 1

Roteiro para testar:

//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                             Copyright © 2011, Trishkin Artyom A. |
//|                                           support@goldsuccess.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Trishkin Artyom A."
#property link      "support@goldsuccess.ru"
//                   Skype: artmedia70

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int count=WindowBarsPerChart();
   for (int i=0; i<count; i++) {
      double buf0=iCustom(Symbol(),Period(),"PerkyAsctrend1_1",4,250,0,i);
      double buf1=iCustom(Symbol(),Period(),"PerkyAsctrend1_1",4,250,1,i);
      if (buf0!=EMPTY_VALUE) Alert("В буфере 0 на баре ",iBarShift(Symbol(),Period(),Time[i])," сигнал на Buy = ",DoubleToStr(buf0,Digits));
      if (buf1!=EMPTY_VALUE) Alert("В буфере 1 на баре ",iBarShift(Symbol(),Period(),Time[i])," сигнал на Sell = ",DoubleToStr(buf1,Digits));
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
Razão: