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

 
Artemis ist super!!!
 
Roman.:


1. Lesen Sie vorsichtshalber alle Informationen über meine Links ab Beitrag 7 auf dieser Seite.

2. Schauen Sie sich den Trailer an, um Ihre Frage zu klären. Die zweite Datei ist mein Beispiel für die Arbeit mit dem Strategie-Optimierer und die Abhängigkeit der Stop- und Profit-Werte des TS, die als Ergebnis der Optimierung vom Recovery Factor erhalten wurden, von der aktuellen Grafik. Ich benutze es seit kurzem selbst - ich bin noch dabei, es selbst zu entwickeln, also alle Fragen an die Autoren. Schauen Sie sich auf ihrer Website um.

3. Alle, IMHO.


Ooh, cool!!! Heißt das Programm nicht Excel? Wie nutzen Sie es, wie sparen Sie darin?
 

Ich bin ein totaler Anfänger in diesem, aber bitte helfen Sie mir ein EA zu schreiben, die auf diese Weise funktioniert, zunächst nur einen Kaufauftrag zu öffnen und setzen Sie einen Take-Profit und Stop-Loss, dann, wenn dieser Auftrag geschlossen wird, wenn Take-Profit ausgelöst wird, dann öffnet die gleiche Reihenfolge zu kaufen, und wenn geschlossen, wenn ausgelöst Stop-Loss ist zu verkaufen
 
Wie kann ich die Ergebnisse in Excel speichern? Im Testprogramm klickte ich auf "Alles speichern", fand und öffnete Excel, klickte auf "Einfügen" auf weißem Hintergrund, und nichts geschah. Vielleicht kommt mein Bruder bald und stößt mich raus, wegen des Computers.
 
dkfl.zrjdktdbx:
Wie kann ich die Ergebnisse in Excel speichern? Im Testprogramm klickte ich auf "Alles speichern", fand und öffnete Excel, klickte auf "Einfügen auf weißem Hintergrund", und nichts geschah. Vielleicht kommt mein Bruder bald und stößt mich raus, wegen des Computers.
Vielleicht sollte ich mir einen zweiten Computer zulegen.
 
Eines Tages...
 
dkfl.zrjdktdbx:
Wie kann ich die Ergebnisse in Excel speichern? Im Testprogramm klickte ich auf "Alles speichern", fand und öffnete Excel, klickte auf "Einfügen auf weißem Hintergrund", und nichts geschah. Vielleicht kommt mein Bruder bald und schiebt mich raus, wegen des Computers.

Alles kopieren und einfügen, nur den Namen der Kolumne muss ich selbst schreiben, und Rentabilität bedeutet bei mir Monate.
 
dkfl.zrjdktdbx:

Ooh, cool!!! Heißt das Programm nicht Excel? Wie kann man es benutzen, wie kann man darin speichern?

Lesen Sie die Hilfe und die MicrosoftOffice-excel-Dokumentation... :-)
 

Genossinnen und Genossen, ich habe kürzlich eine Frage dazu gestellt, dass der EA auf einem echten Konto anders funktioniert als im Strategietester. Sie sagten, dass es ohne den Code des EA selbst keine Möglichkeit gibt, ihn herauszufinden. Hier ist der Code:

Kurz gesagt, der EA arbeitet nach dem Martingale-Prinzip, d.h. er eröffnet mit doppeltem Lot, wenn der vorherige Handel nicht erfolgreich war. Wenn es falsch ist mehr als 3 mal, dann nehme ich an, dass ein flaches gestartet und ändern Sie die Größen der Lose und Haltestellen, aber proportional, als ob der EA ist immer noch die Eröffnung in die andere Richtung mit Doppel-Lot.

Wenn alles gut war, öffnet es sich in dieselbe Richtung mit einem Los. Also hier ist das Problem: In der Strategie-Tester alles funktioniert gut, aber in meinem realen Konto ist es bereits öffnen 2. Handel mit 0,24 Lot (diese Zahl ist in Schalter-Funktion eingestellt)... Hilfe bitte ... Ich möchte es wirklich auf einem echten Konto ausprobieren, das Problem hält mich auf dem Demokonto =(

//+------------------------------------------------------------------+ 
//| 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 double lots = 0.1; 

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


    static int CriticalTicket = 0; 

    int TicketArray[4]; //миссив с тикетами
    int CTicketArray[10]; //массив с критическими тикетами

    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]; 
      } 
    } 
    
    void FormCriticalTicket(int number1) //сюда записываю критическме тикеты
    { 
      for(int i=9;i>0;i--) 
      { 
         CTicketArray[0] = CriticalTicket; 
         if(CTicketArray[0]>0 && CTicketArray[0] == CTicketArray[1])break; 
         CTicketArray[i] = CTicketArray[i-1]; 
      } 
    }  


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 
     if(OrdersHistoryTotal()==0) 
     { 
        ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"First order",Magic,0,Yellow); //открываем первый ордер 
     } 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
FormCriticalTicket(CriticalTicket); //вызываем функцию, что запоминала критические тикеты
int CritLot = crit(); //функция берет минимальное значение из массива критических тикетов
int OrderTimeCheck = check3(); //проверяем, закрыт ли ордер 
bool OrderCloseCheck = check2(OrderTimeCheck); //проверяем, закрылись ли ордера в минус 
FormTicket(ticket); //вызываем функцию, чтоб запоминала тикеты 
OrderOpenFunction(OrderCloseCheck,CritLot); //тут открываем ордера 

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


int crit()
{
   return(ArrayMinimum(CTicketArray,6,1));
}

int check3() //проверяем, закрыт ли ордер 
{ 
   OrderSelect(TicketArray[1],SELECT_BY_TICKET); 
   if(OrderClosePrice()==OrderTakeProfit()) 
      { 
         CriticalTicket=0;
      } 
   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(OrdersHistoryTotal()>2) 
         { 
            if(OrderClosePrice()!=OrderStopLoss()) 
            { 
               flag = false; 
            } 
         } 
         if(OrdersHistoryTotal()<=2) 
         { 
            flag = false; 
         } 
      } 
      return(flag); 
   } 
   else
      return(false); 
} 

void OrderOpenFunction(bool OrderCloseCheck, int CritLot) 
{ 
   total = OrdersTotal();
   if(OrderCloseCheck==true)
   {
      int TP1,TS1;
      double m1,m2,m3,m4,m5,m6;
      m1=1.2;
      m2=1.25;
      m3=2.0;
      m4=1.0;
      m5=1.25;
      m6=1.0;
   
      OrderSelect(TicketArray[1],SELECT_BY_TICKET); 
      switch(CritLot)
      {
         case 1: volumz = (OrderLots()*2)*m1;
                  TP1=TP/m1;
                  TS1=TS/m1; 
                  break;
         case 2: volumz = (OrderLots()*2)*m2/m1;
                  TP1=TP/m2;
                  TS1=TS/m2; 
                  break;
         case 3: volumz = (OrderLots()*2)*m3/m2;
                  TP1=TP/m3;
                  TS1=TS/m3; 
                  break;
         case 4: volumz = (OrderLots()*2)*m4/m3;
                  TP1=TP/m4;
                  TS1=TS/m4;
                  break;
         case 5: volumz = (OrderLots()*2)*m5/m4;
                  TP1=TP/m5;
                  TS1=TS/m5;
                  break;
         case 6: volumz = (OrderLots()*2)*m6/m5;
                  TP1=TP/m6;
                  TS1=TS/m6;
                  break;
      }

      if(total < 1) 
      { 
         if(OrderType()==OP_SELL) 
         { 
            double lot3 = volumz; 
            ticket = OrderSend(Symbol(),OP_BUY,lot3,Ask,slip,Bid-TS1*Point,Bid+TP1*Point,0,Magic,0,Green); 

            if(ticket>0) 
            { 
               CriticalTicket = ticket; 
            } 
         } 
         if(OrderType()==OP_BUY) 
         { 
            OrderSelect(TicketArray[1],SELECT_BY_TICKET); 
            double lot4 = volumz; 
            ticket = OrderSend(Symbol(),OP_SELL,lot4,Bid,slip,Ask+TS1*Point,Ask-TP1*Point,0,Magic,0,Red); 

            if(ticket>0) 
            { 
               CriticalTicket = ticket; 
            } 
         } 
      } 
   }   
   if(OrderCloseCheck==false) 
   { 
      if(total < 1) 
      { 
         OrderSelect(TicketArray[1],SELECT_BY_TICKET); 
         volumz = OrderLots(); 
         if(OrderClosePrice() == OrderStopLoss()) 
         { 
            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,Red); 
            } 
            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,Green); 
            } 
         } 
         if(OrderClosePrice() == OrderTakeProfit()) 
         { 
            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); 
            } 
         } 
      } 
   } 
} 

alle Erklärungen sind da... Wenn Sie mehr brauchen, bin ich gerne bereit, Ihnen zu helfen.

 
Hallo zusammen, frohes neues Jahr. Ich kann keine Möglichkeit finden, einen Auftrag nur einmal zu erteilen, wenn die Bedingung erfüllt ist, nach der der Auftrag erteilt wird, dann, wenn es einen Auftrag für das zweite Mal wird es nicht erteilt werden. Wenn Sie ein Beispiel nennen können.