[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 434

 

Hilfe )

1. sofortige Erkennung eines neu eröffneten Handels (keine schwebenden Aufträge) Auftrag (manuell eröffnet und mit Hilfe eines EA geöffnet) Wenn das System einen Auftrag erkannt hat, der nicht früher eröffnet wurde, geht es unter Nummer 2 weiter.

2. Jede Aufgabe wird nur einmal ausgeführt, nur für diesen Auftrag.

Nachdem ein weiterer Auftrag geöffnet wurde, beginnt das System wieder mit der Arbeit von Punkt 1 bis Punkt 2.

Können Sie jemandem helfen , der neu in der Programmierung ist?

Bitte um Hilfe. Wie können wir das tun? Ich identifiziere jeden neuen offenen Auftrag mit der nachfolgenden Aufgabe für 1-n-mal, nur für diesen Auftrag, und so weiter, für jeden neu geöffneten Auftrag.

Ich danke Ihnen.

Es gibt eine Gliederung, die aber keine Aufträge indiziert.

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{


//----

for (int k=OrdersTotal()-1;k>=0;k--)//Начинаем перебор всех открытых ордеров начиная с конца
{
RefreshRates();//Обновляем котировки, необходимо при модификации или закрытии ордеров
if (OrderSelect(k,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol())//Выбираем ордер с номером из цикла, и проверяем, совпадает ли символ ордера с текущим
{
int cmd=OrderType();//В переменной cmd будем хранить тип ордера
if(cmd>1)//Нас интересуют только отложенные ордеры
{
//Что-то делаем
}
if (cmd==OP_BUY)//А вдруг на покупку ордер?
{
Alert (GetLastError());
}
if (cmd==OP_SELL)//Или на продажу?
{
Alert (GetLastError());
}
}
}
//----
return(0);
}

 

Hallo zusammen!

Können Sie mir sagen, warum dieser Indikator nicht jeden Balken darstellt, sondern ich ihn neu anordnen muss, um die Grafik zu sehen?

//+------------------------------------------------------------------+
//|                                                Ср.отклонение.mq4 |
//|                                                Copyright © 2011. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2011, Dimon"
#property  link      "todem5@gmail.com"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Lime
#property  indicator_level1  100
#property  indicator_style1  1
#property  indicator_level2  20
#property  indicator_style2  1
//#property  indicator_color2  Red
#property  indicator_width1  2
//---- indicator parameters
//---- indicator buffers
extern int period=24;
double     MacdBuffer[];
double     SignalBuffer[];
int tf, k;
string S;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   tf=Period();
   S=Symbol();
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   //SetIndexStyle(1,DRAW_LINE);
   
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   //SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Ср.отклонение.: "+period+", в %: ");
   SetIndexLabel(0,"MACD");
   //SetIndexLabel(1,"Signal");
//---- initialization done
      
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   if (!IsOptimization() && !IsTesting() && !IsVisualMode()) {
   k=WindowFind("Ср.отклонение.: "+period+", в %: ");
   ObjectDelete("OrdCr2");
   ObjectCreate("OrdCr2", OBJ_LABEL, k, 0, 0);
   ObjectSet("OrdCr2", OBJPROP_CORNER, 2);
   ObjectSet("OrdCr2", OBJPROP_XDISTANCE, 5);
   ObjectSet("OrdCr2", OBJPROP_YDISTANCE, 22);
   ObjectSet("OrdCr2", OBJPROP_COLOR, Red);
   ObjectSetText("OrdCr2", "Ср.откл.1", 10, "Arial Black", Moccasin);
   }      
   double sum, f;
   int limit;
   int P;
   if (Digits==5) {P=100000;}
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit-period; i++){
      sum=0;
      for (int k=i+1;k<=i+period;k++){
      if (iHigh(Symbol(),tf,k)>iLow(Symbol(),tf,k)) {f=(iHigh(Symbol(),tf,k)-iLow(Symbol(),tf,k));}
      if (iHigh(Symbol(),tf,k)<iLow(Symbol(),tf,k)) {f=(iLow(Symbol(),tf,k)-iHigh(Symbol(),tf,k));}
      sum=sum+(f*P);
      }   
      MacdBuffer[i]=sum/24; 
      }
   
   return(0);
  }
//+------------------------------------------------------------------+
Dateien:
 
Roman.:
Leute, könnt ihr mir sagen, wie man in Excel die Division (Erkennung durch den Prog) des Bruchteils einer Zahl mit einem Komma durch einen Punkt ersetzt? Ich danke Ihnen für Ihre Hilfe.


Bedienfeld - Sprachen und regionale Standards

Ändern Sie die Norm z. B. ins Englische - aus dem Semikolon wird ein Punkt.
Probleme bei der Datenübertragung beheben - dann zurück zum Standard wechseln

 
Roman.:
Leute, könnt ihr mir sagen, wie man in Excel die Division (Erkennung durch den Prog) des Bruchteils einer Zahl mit einem Komma durch einen Punkt ersetzt? Vielen Dank für die Hilfe.

Die zweite Möglichkeit besteht darin, das Trennzeichen in den Excel-Einstellungen zu ändern
 
abolk:


Bedienfeld - Sprachen nach regionalen Standards

Ändern Sie die Norm z. B. in Englisch - das Komma wird zu einem Punkt.
Probleme bei der Datenübertragung beheben - dann zurück zum Standard wechseln


Dankeschön
 
sergeev:


die zweite Möglichkeit besteht darin, das Trennzeichen in den Excel-Einstellungen selbst zu ändern

Ich danke Ihnen... Das habe ich auf Anraten des Clubpräsidenten bereits getan... :-))) Wie kann man das Trennzeichen in den Einstellungen von Excel selbst ändern - ich habe es nicht gefunden.
 
Roman.:

excel - ich konnte es nicht finden.
Version von Excel?
 
sergeev:
Version von Excel?


2003г
 
Roman.:

2003г

Service-Einstellungen-International
 
sergeev:

Service-Einstellungen-International

Ja, verstanden, verstanden. Ich danke Ihnen. Dort wurde sie auch geändert.
Grund der Beschwerde: