[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 334

 
khorosh:
Quelle est la différence entre POINT et TICKSIZE ? Lorsque vous interrogez MarketInfo(), ils sont identiques, mais pourquoi devraient-ils être différents s'ils portent des noms différents ?
.
Quelle est la différence entre POINT et TICKSIZE site:mql4.com
 
khorosh:
Quelle est la différence entre POINT et TICKSIZE ? Lorsqu'ils sont interrogés par MarketInfo(), ils sont identiques, mais devraient-ils être différents s'ils portent des noms différents ?

Parfois, ils sont différents pour chaque instrument
 
Vinin:

Il y a parfois une différence pour les instruments individuels
Merci. Un point est comme un penny - une unité de mesure. Et tixais est la variation minimale du prix. Apparemment, les tixies ne peuvent pas être inférieurs à un pip et plus. Je suppose que c'est à la CB de décider.
 
Pouvez-vous me dire s'il est possible d'exécuter une macro depuis MQL dans un livre EXCEL (il est ouvert) ?
 
rustein:
Comment calculer la taille maximale autorisée du lot avec un effet de levier, etc.
Merci.
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:

Merci beaucoup.
 

AIDE POUR JOINDRE LE FICHIER AU TEXTE

 
Mes amis, aidez-moi à résoudre un problème... J'ai des numéros de tickets écrits dans le tableau TicketArray (il y en a 3). Donc, je veux que mon EA arrête de trader lorsque je subis une perte 3 fois de suite... Pour commencer, je ne peux pas écrire la condition de 3 lots... Le Bon Serpent m'a un jour donné quelques connaissances sur les drapeaux et je les utilise maintenant, mais ça ne marche toujours pas. Après que le premier ordre se ferme en perte, il devient vrai, et ensuite il fonctionne bien... Pourquoi ?

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);

Je colle l'intégralité de l'EA au cas où. Il s'agit d'une martingale normale, que j'ai écrite moi-même à des fins pédagogiques.

//+------------------------------------------------------------------+
//| 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");
} 
} 
 

Impossible de lire un des tampons de l'indicateur PerkyAsctrend1.
Aidez-moi à trouver une solution. Je l'ai fait de nombreuses fois avec d'autres indicateurs, toujours sans problème. Je ne peux pas le faire ici.
Je lis deux tampons : l'un d'eux :
double PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5,250,0,1) ; - lit correctement, le signal est attrapé, la ligne suivante essaie d'attraper :
double PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5,250,1,1) ; mais tous les signaux de ce tampon manquent mon Expert Advisor. J'ai même essayé de créer un Expert Advisor vide avec deux points Comment() avec des résultats. Je n'arrive pas à obtenir un signal de vente.
Pouvez-vous m'aider à le comprendre.
Je voudrais joindre l'indicateur
Dossiers :
 
Qoren:

Impossible de lire un des tampons de l'indicateur PerkyAsctrend1.
Veuillez m'aider à le comprendre. Je l'ai fait de nombreuses fois avec d'autres indicateurs, toujours sans problème. Mais cela ne fonctionne pas ici.
Je lis deux tampons : l'un d'eux :
double PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5,250,0,1) ; - lit correctement, le signal est attrapé, la ligne suivante essaie d'attraper :
double PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5,250,1,1) ; et tous les signaux de ce tampon passent devant mon EA. J'ai même essayé de créer un Expert Advisor vide avec deux points Comment() avec des résultats. Je n'arrive pas à obtenir un signal de vente.
Pouvez-vous m'aider à le comprendre.
Je voudrais joindre l'indicateur

Signal d'achat dans le tampon 0, signal de vente dans le tampon 1.

Script à tester :

//+------------------------------------------------------------------+
//|                                                         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);
  }
//+------------------------------------------------------------------+