[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 334

 
khorosh:
Was ist der Unterschied zwischen POINT und TICKSIZE? Bei der Abfrage über MarketInfo() sind sie identisch, aber warum sollten sie unterschiedlich sein, wenn sie unterschiedliche Namen haben?
Was ist der Unterschied zwischen POINT und TICKSIZE site:mql4.com
 
khorosh:
Was ist der Unterschied zwischen POINT und TICKSIZE? Wenn sie über MarketInfo() abgefragt werden, sind sie gleich, aber warum sollten sie unterschiedlich sein, wenn sie unterschiedliche Namen haben?

Manchmal sind sie für einzelne Instrumente unterschiedlich
 
Vinin:

Manchmal gibt es einen Unterschied bei einzelnen Instrumenten
Ich danke Ihnen. Ein Punkt ist wie ein Pfennig - eine Maßeinheit. Und tixais ist die Mindestpreisänderung. Anscheinend können Tixies nicht weniger als einen Pip und mehr sein. Ich denke, das muss das BL entscheiden.
 
Können Sie mir bitte sagen, ob es möglich ist, ein Makro von MQL in einem EXCEL-Buch auszuführen (es ist geöffnet)?
 
rustein:
Wie berechne ich die maximal zulässige Losgröße mit Hebelwirkung usw.?
Dankeschön
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:

Ich danke Ihnen vielmals.
 

HILFE ZUM ANHÄNGEN DER DATEI AN DEN TEXT

 
Freunde, helft mir, ein Problem zu lösen... Ich habe Ticketnummern in TicketArray-Array geschrieben (es gibt 3 von ihnen). Ich möchte also, dass mein EA den Handel stoppt, wenn ich 3 Mal hintereinander einen Verlust erleide... Zunächst einmal kann ich die Bedingung von 3 Losen nicht schreiben... Die Gute Schlange hat mir einmal einige Kenntnisse über Flaggen gegeben und ich verwende sie jetzt, aber es funktioniert immer noch nicht. Nachdem der erste Auftrag mit Verlust abgeschlossen wurde, wird er wahr, und dann funktioniert er gut... Warum?

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

Ich füge den gesamten EA nur für den Fall ein. Dies ist ein gewöhnliches Martingal, das ich zu Lehrzwecken selbst geschrieben habe.

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

Einer der PerkyAsctrend1-Indikatorpuffer kann nicht gelesen werden.
Bitte helfen Sie mir, es herauszufinden. Ich habe das schon viele Male mit anderen Indikatoren gemacht, immer ohne Probleme. Ich kann es hier nicht tun.
Ich lese zwei Puffer: einer von ihnen:
double PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5,250,0,1); - liest richtig, das Signal wird gefangen, nächste Zeile versucht zu fangen:
double PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5,250,1,1); aber alle Signale aus diesem Puffer verpassen meine Expert Advisor. Ich habe sogar versucht, einen leeren Expert Advisor mit zwei Comment()-P unkten zu erstellen - mit Erfolg. Ich bekomme kein Signal für den Verkauf.
Können Sie mir helfen, es zu verstehen?
Ich möchte einen Indikator anbringen
Dateien:
 
Qoren:

Einer der PerkyAsctrend1-Indikatorpuffer kann nicht gelesen werden.
Bitte helfen Sie mir, es zu verstehen. Ich habe das schon viele Male mit anderen Indikatoren gemacht, immer ohne Probleme. Aber das funktioniert hier nicht.
Ich lese zwei Puffer: einen von ihnen:
double PerkyBuf2=iCustom (NULL,0," PerkyAsctrend1 ",5,250,0,1); - liest korrekt, das Signal wird abgefangen, nächste Zeile versucht zu fangen:
double PerkyBuf1=iCustom (NULL,0," PerkyAsctrend1 ",5,250,1,1); und alle Signale dieses Puffers fliegen an meinem EA vorbei. Ich habe sogar versucht, einen leeren Expert Advisor mit zwei Comment()-Punkten zu erstellen - mit Erfolg. Ich bekomme kein Signal für den Verkauf.
Können Sie mir helfen, es zu verstehen?
Ich möchte einen Indikator anbringen

Signal für Kauf in Puffer 0, Signal für Verkauf in Puffer 1

Skript zum Testen:

//+------------------------------------------------------------------+
//|                                                         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);
  }
//+------------------------------------------------------------------+
Grund der Beschwerde: