Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 382

 
Link_x:

Auch wenn man so keine Aufträge abschließt, gefällt mir das nicht.
Es liegt wohl an meinen Fehlern, die ich aufgrund meiner Unerfahrenheit nicht finden kann.

Außerdem verwenden wir GetLastError(), um zu untersuchen, wo das Problem liegt.
 
Link_x:
Ich kann es nicht begreifen.
OK, ich habe bereits eine Alternative gefunden. :)

Lassen Sie MTS Geschäfte ohne SL und TP machen, aber schließen Sie alle, wenn der potenzielle Gewinn größer als X ist.
Ist es möglich, Aufträge auf diese Weise abzuschließen?
Müssen wir die Aufträge auf diese Weise verfolgen?
Der erste Parameter der Funktion OrderClose(.......) muss das Ticket der Position sein (es muss vorher mit OrderSelect() ermittelt werden)
 
Finde die sl-Variable heraus, du hast eine ganze Zahl, dann hast du einen Bruch.
 
vadynik:

Ist die Funktion gebrochen oder sollte sie es nicht sein?

Frohes neues Jahr! Trinken Sie etwas und machen Sie sich keine Sorgen!!!!!!!!!!!!!!!!!! :-)
 
Link_x:

Auch wenn das nicht der Fall ist, mag ich es nicht.
Es scheinen meine Fehler zu sein, die ich aufgrund meiner Unerfahrenheit nicht finden kann.


Guru, wo gehst du hin... ?... :-))) hast du den Verstand verloren ...

Menschenmassen beten, sie wissen nicht, wohin sie gehen sollen, und er kann seine Füße nicht richtig bewegen... :-)))

 
vadynik:

Ist die Funktion gebrochen oder sollte sie es nicht sein?
void VirtualTral(int Dist_Tral,int Start_Tral,int Magic,int SL)

\\здесь у тебя SL - целая, не знаю, какое значение ты сюда посылаешь
{

double dist=Dist_Tral;
double start=Start_Tral;
double sl=SL;

//здесь уже дробная, но так как до этого была целая, значит....
 
if(OrdersTotal()<=0)
ObjectDelete("Stop"); 

int i, k=OrdersTotal();

  for (i=k-1; i>=0; i--) 
   {
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {  

             if (Bid-NormalizeDouble(OrderOpenPrice(),Digits)>NormalizeDouble(start*Point,Digits))
      
          {                                                                                                                        
                    if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits)))//здесь sl подразумевается как отступ от цены, тогда dist должна быть ценой
                {         
                                                 
                          sl=NormalizeDouble(Bid-dist*Point,Digits); //а здесь sl - это уже цена, вполне определенная
                          //Print(+dist); 
                          //Print(+sl); 
                          ObjectCreate("Stop",OBJ_HLINE,0,D'2013.02.20 12:30',sl); // и здесь, это определенное значение цены
                                                                        
                          ObjectSet("Stop",OBJPROP_STYLE,1);                         
                          ObjectMove("Stop",0,D'2013.02.20 12:30',sl);            
   
 
vadynik:

Weil ich die Differenz zwischen Angebot und Nachfrage zähle und dieses Delta mit der Entfernung vergleiche und wenn es mehr ist, ist es notwendig, den Stopp nachzuziehen, ich verstehe nicht, wo genau der Fehler liegt?



Machen wir es in Zahlen

if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits))

Angenommen, das Bid ist 1,3333, sl ist 100, dist ist 20, dann

1,3333-100 * 0,0001=1,3233 das ist immer mehr als 20 * 0,0001 = 0,02

 
gyfto:

Ich habe eine weniger wichtige Frage zur Benutzerfreundlichkeit. Das Diagramm kann nach links und rechts gescrollt sowie gequetscht und gestreckt werden. Aber wie scrolle ich nach oben und unten?

Ich habe es herausgefunden, mit kann das Diagramm mit der Maus nach oben und unten gezogen werden.

 
Integer:
r772ra

Vielen Dank für Ihre Hilfe, liebe Trader - Programmierer. :)
 

Bitte beraten Sie mich, wie man in MQL4 Prozentsätze berechnet

z.B. x=10+3% wie kann man das programmatisch schreiben?

Ich kann sie im Nachschlagewerk nicht finden.