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

 
YuraZ:



Danke!!!!!!!!!!!!

Wenn Sie es nicht für unverschämt halten.....:))) beraten, wie man den Tester richtig einsetzt. So wie ich es versuche, funktioniert es nicht.

#import  "shell32.dll"
    int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd); 
#import

int Start;

int start()
   {
    //---------------------------------- Запустим Тестер -------------------------
    //Start   = ShellExecuteA(0, "Open", "terminal.exe", FileOptim, PuthTester_h, 3);
    //Start   = ShellExecuteA(0, "Open", "terminal.exe", "optimise.ini", "D:\Alpari_Terminal_Tester\tester", 3);

    return(0);
   }
 
Leo59:

Danke!!!!!!!!!!!!

Wenn Sie es nicht für unverschämt halten.....:))) sagen Sie mir, wie man den Tester richtig bedient. So wie ich es versuche, funktioniert es nicht.

Die Selbstoptimierung hat beschlossen, es zu tun! ? cool... Das ist ein cooles Thema.

Es gibt 2 Möglichkeiten, wie ich die 1

1) Starten Sie die Optimierung über den Expert Advisor auf demselben Terminal

2) Konfigurieren Sie ein separates Terminal oder Terminals - starten Sie sie und lesen Sie dann die Ergebnisse der Optimierung


Sie scheinen die 2. Methode auszuprobieren - sie ist mühsamer.


Ersetzen Sie es zuerst.

ShellExecuteA  на ShellExecuteW
 
YuraZ:

Die Selbstoptimierung hat beschlossen, es zu tun! ? cool... Das ist ein cooles Thema.

Es gibt 2 Möglichkeiten, wie ich die 1

1) Starten Sie die Optimierung über den Expert Advisor auf demselben Terminal

2) Konfigurieren Sie ein separates Terminal oder Terminals - starten Sie sie und lesen Sie dann die Ergebnisse der Optimierung


Sie scheinen die 2. Methode auszuprobieren - sie ist mühsamer.


Zunächst müssen Sie es durch ersetzen.



Danke!!!!!!!!
Sie haben Recht :)) Die Quintessenz ist die Selbstoptimierung.


1) Starten Sie die Optimierung über den Expert Advisor auf demselben Terminal.

Ich mache es auf der Grundlage der aktuellen virtuellen Handelsergebnisse

2) Konfigurieren Sie ein separates Terminal oder mehrere Terminals - starten Sie sie und lesen Sie dann die Optimierungsergebnisse am Ende ab

Ich habe mich im Herbst mit der automatischen Optimierung von XEON beschäftigt. TestCommander ist eine kommerzielle Blackbox. Ich habe beschlossen, es selbst zu tun, um die Funktionalität, die in Variante 1) nicht funktioniert, irgendwie zu implementieren.

 
pu6ka:

Setzen Sie diesen Indikator auf M1, wenn neue Balken erscheinen, werden die Alligatorlinien auf der linken Seite "weggewischt". Brauchen Sie das?



Das Problem wurde gelöst.

#property copyright "forexman77@list.ru"
#property link      "forexman77@list.ru"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
extern int p  =10;
double val_plus[];
double val_minus[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    indicator_plus,indicator_minus;
   if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0;i<limit;i++)
   { 
     indicator_plus=0;
     indicator_minus=0;
     ArrayInitialize(val_plus,0);
     ArrayInitialize(val_minus,0);
   for(int k=p;k>=0;k--)
     {
     ArrayResize(val_plus,p);
     ArrayResize(val_minus,p);
     if(iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+k)>iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+k+1))val_plus[k]=1;
     if(iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+k+1)>iMA(NULL,PERIOD_CURRENT,21,0,MODE_EMA,PRICE_CLOSE,i+k))val_minus[k]=1;

     if (val_plus[k] > 0){indicator_plus=indicator_plus+val_plus[k];}
     if (val_minus[k] > 0){indicator_minus=indicator_minus+val_minus[k];}
     }
          ExtMapBuffer1[i]=indicator_plus;
          ExtMapBuffer2[i]=indicator_minus;
   }

   return(0);
  }
 
Kann jemand einen einfachen Skriptcode schreiben, der eine Datei von einem Ort zu einem anderen kopiert?

Oder, die den Tester in einem anderen Terminal ausführen?

Nun, das kann ich noch nicht. Können Sie das?

 
Leo59:
Kann jemand ein einfaches Skript schreiben, das eine Datei von einem Ort zu einem anderen kopiert?

Oder wer wird den Tester in einem anderen Terminal ausführen?

Hier kann ich immer noch nicht. Und Sie?


Und ich kann es nicht, weil ich es nicht muss! Was nötig ist, lerne ich selbst zu tun, damit ich meine Logik nicht ändern muss!

Vor allem, weil ich es selbst gemacht habe. Wenn Sie etwas ändern müssen, kein Problem!

Lernen Sie von den Grundlagen "Spiel", mit Hinweisen-Geschenke werden nicht lernen und am Ende mehr Zeit für nichts verschwendet werden!

Viel Glück! :)

 
borilunad:


Und das kann ich nicht, weil es noch nicht notwendig ist! Was nötig ist, bin ich gewohnt, selbst zu tun, um meine Logik nicht zu ändern!

Ein Grund mehr, es selbst zu machen. Wenn Sie etwas ändern müssen, kein Problem!

Lernen Sie die Grundlagen, sonst lernen Sie nichts und vergeuden auf Dauer noch mehr Zeit!

Viel Glück! :)

Du hast Recht: "Iss nicht das Brot eines anderen".

Die Stadt Barcelona ist fantastisch! Allein die Straßenbahnschienen, die inmitten von grünem Rasen verlaufen, sind es wert! Aber die Frauen dort in Spanien sind kurzhäutig und dickköpfig, nicht wie unsere Frauen in St. Petersburg.
:)) Was für einen Blödsinn kann man nicht aus dem Kopf schreiben. Das bin ich.

Es ist alles gut, und ich wünsche auch Ihnen und allen anderen viel Glück!

 
Leo59:

Du hast Recht, man sollte nicht auf das Brot eines anderen starren.

Barcelona ist eine erstaunliche Stadt. Die Straßenbahn allein, inmitten von grünem Rasen, was sie wert ist! Aber die Frauen dort in Spanien sind kurzhalsig und dickköpfig, nicht wie unsere Frauen in St. Petersburg.
:)) Was für einen Blödsinn man nicht schreiben kann, wenn man einen richtigen Kater hat. Das bin ich.

Es ist alles gut, und ich wünsche auch Ihnen und allen anderen viel Glück!


Ich spreche nicht von einem "Laib", sondern von einer produktiveren Methode des Lernens, so dass "es nicht schmerzhaft weh tut für die verschwendeten Jahre"!

Nun, jedem das Seine! :(

 
artmedia70:

Versuchen Sie es vielleicht so:

Geben Sie ein Symbol und eine Magie in die zu übergebenden Variablen ein. Sie haben keine Kontrolle über sie.




Ich danke Ihnen! Ich werde es am Montag versuchen. Allerdings ist mir die Frage immer noch nicht klar. Warum erhalte ich eine Fehlermeldung, wenn ich einen Auftrag abschließen möchte? Übrigens werde ich den gleichen Code im alten Tester ausprobieren müssen. Der neue Tester hat eine Menge kleinerer Änderungen. Ich bin mir nicht immer sicher, wie das Ergebnis aussehen wird.
 
001:


Ich danke Ihnen! Ich werde es am Montag versuchen. Allerdings bleibt die Frage für mich immer noch unklar. Warum erhalte ich eine Fehlermeldung, wenn ich einen Auftrag abschließen möchte? Übrigens werde ich den gleichen Code im alten Tester ausprobieren müssen. Der neue Tester hat eine Menge kleinerer Änderungen. Ich bin mir nicht immer sicher, wie das Ergebnis aussehen wird.

Ich kann mich jetzt nicht mehr erinnern... Wenn Sie alle Sell schließen wollen, brauchen Sie die Funktion nicht zu verlassen. Da habe ich im Schlaf Mist gebaut. So kann man sie alle abschließen:

//+------------------------------------------------------------------+
void  CheckForLongetivityClose_Sell(int symbol, int magic) {
   if(DayOfWeek()==0 || DayOfWeek()==6) return;
   for(int i=OrdersTotal()-1; i>=0; i--) {
      if(OrderSelect(i,SELECT_BY_POS)) {
         if(OrderMagicNumber()!=magic) continue;
         if(OrderSymbol()!=symbol)     continue;
         if(OrderType()!=OP_SELL)      continue;
         datetime openTime_S= OrderOpenTime();
         int timeDistance_S = TimeCurrent()-openTime_S;
         if(timeDistance_S>60*BarrierMinute_S) {
            bool  res= OrderClose(OrderTicket(),OrderLots(),Ask,3,clrRed);
            }
         }
      }
}
//+------------------------------------------------------------------+

Im Allgemeinen gilt natürlich, dass anstelle dieser Zeile

bool  res= OrderClose(OrderTicket(),OrderLots(),Ask,3,clrRed);

Sie müssen eine normale Funktion aufrufen, um Positionen zu schließen, deren Rückgabecode vom Server verarbeitet wird.