Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 203

 
Alexey Kozitsyn:
Nun... ich glaube nicht, dass wir so tief graben müssen, aber die Anfrage in einer Schleife ist wirklich das erste, was einem ins Auge fällt.

Was ist, wenn diese Daten einmalig oder einmal pro Stunde benötigt werden? Warum eine nutzlose Schleife machen?

Keiner von uns, außer dem Fragesteller selbst, weiß, was er will. Wir können ihm also nur raten, was ihm geraten wurde, nämlich in einem telepathischen Club seine Fehler bei der Formulierung der Frage zu lesen. Und lassen Sie sich nicht von denjenigen beleidigen, die beschlossen haben, ein wenig zu lachen.

 
Alexey Kozitsyn:
Trolle:) Ein besserer Vorschlag wäre, die Preise in eine Schleife zu legen. Dementsprechend sind sie in Arrays zu speichern.
Lesen Sie es in aller Ruhe).
 
Du hättest einfach antworten sollen, dass meine Frage für dich nicht klar war. Und du "Salz und Pfeffer"... Ressentiments
 
STARIJ:

Meiner Meinung nach ist es einfacher so

Die Warnmeldung wird sofort auf dem Bildschirm ausgegeben. Dies ist das Ende der Tabelle


Haben Sie die Frage gelesen? Das scheint Ihnen entgangen zu sein.
 
Romal001:
Sie hätten einfach antworten sollen, dass meine Frage für Sie nicht klar war. Und Sie "salzen, pfeffern..." Offensive

Lesen Sie meine erste Antwort an Sie, sie war eine Frage an Sie. Hätten Sie die Frage klar beantwortet, wäre das Gespräch vielleicht anders verlaufen.

Nach welcher Art von Signalen haben Sie gefragt?

Und was hat das mit Kerzendaten zu tun?

 
#property indicator_chart_window
extern int boom = 1;
//=================================
void fishka(int ma,int mi,double map,double mip) // ф-ция
{
   ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[ma], map, Time[mi], mip);// Проводим линию
   ObjectSet("Макс_Мин",OBJPROP_RAY,false);     // Выключить свойство бесконечного луча
}

int deinit()
  {

 ObjectsDeleteAll();// Удалим все объекты
  return(0);
  }

void start()
{  
  string Символ = "GBPUSD";
  datetime Первый, Последний;
  int Период=PERIOD_H1;

  Последний = iTime(Символ, Период, 0);// Прежде всего узнаем дату и время последнего бара
 
if(boom){
   Alert("Последний бар на часовом  ",Последний);}
 
  
  MqlDateTime MqlПервый;              // Теперь получить начало суток, обнулив часы
  TimeToStruct(Последний,MqlПервый);  // Для этого преобразуем время последнего бара в структуру
  MqlПервый.hour=0;

  
  Первый=StructToTime(MqlПервый);            // Терерь надо обратно преобразовать во время
if(boom){
  Alert("Первый бар на часовом  ",Первый);}  // Смотрим начало первого бара суток
  
  int НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);// По времени определим номер первого бара суток
if(boom){
   Alert("Первый бар на часовом под номером ",НомерПервого);}

// Можно было просто узнать время начала бара на D1

  // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
  // Найдем на этом интервале номера баров, где макс и мин
  // iHighest и iLowest находят номер бара с макс и мин ценой
 int  БарМакс = iHighest(Символ,  // symbol = инструмента
                Период,           // timeframe = Период
                MODE_HIGH,        // Наибольшая цена бара
                НомерПервого+1,   // Количество баров
                0);               // Начальный бар

int  БарМин  = iLowest(Символ,Период,MODE_LOW,НомерПервого+1,0); // Наименьшая цена бара
                               
if(boom){
  Alert("Максимальный бар = ", БарМакс, "  Минимальный бар = ", БарМин);}
                                                                           

 
double max_price=iHigh(Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бара
double min_price=iLow (Символ, Период, БарМин);
   
    fishka(БарМакс,БарМин,max_price,min_price); // ф-ция
 if(boom){
   Alert("Максимум цены = ", max_price, "  Минимум цены = ", min_price);
 
   Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));} // Теперь хорошо бы узнать угол               
}

wie man es in einer Schleife zu setzen, um nicht nur einen Tag, sondern die Geschichte, alle verdreht wie eine Schlange nicht funktioniert, ist das Interesse technisch, ich bin Juckreiz))

 

Wie können Sie einen korrekten und genaueren Preis für die Bereiche ermitteln, in denen sich die beiden Maschinen überschneiden?


 
missha32:   Bitte beraten Sie mich, wie ich einen korrekten und genaueren Preis erhalte, wenn sich zwei Maschinen kreuzen

Der Schnittpunkt liegt zwischen den Balken, und die Berechnung basiert auf den Balken. Oder müssen Sie genauer sein? Man kann interpolieren, aber muss man das? Der langsame Ma hat den gleichen Wert.

 
STARIJ:

Schnittpunkt zwischen den Balken, und die Berechnung erfolgt für jeden einzelnen Balken. Oder müssen Sie genauer sein? Man könnte interpolieren, aber sollte man das tun? Slow Ma hat den gleichen Wert.

In dieser Abbildung ist MA1(1)>MA2(1) und MA1(2)<=MA2(2) die Tatsache der Kreuzung. Der Balken in Klammern zeigt den Balken, an dem MA1 und MA2 genommen werden
 

Der MA kreuzt sich zwischen den Balken - ein deutliches Beispiel gefangen

Der MA auf den Balken links und rechts der Kreuzung unterscheidet sich vom Preis am Kreuzungspunkt. Ich verstehe, dass der Fragesteller den Wert am genauen Kreuzungspunkt und nicht den Wert auf einem der benachbarten Balken haben möchte. Dieser exakte Wert kann durch lineare Interpolation ermittelt werden - schließlich ist der MA zwischen den Balken als Geradenabschnitt konstruiert. Oder nehmen Sie die Koordinaten der einzelnen MA auf benachbarten Balken. Konstruieren Sie analytisch 2 Geraden und berechnen Sie deren Schnittpunkt. Die Berechnung ist möglich, wenn man 2 ähnliche Dreiecke betrachtet. Es stellt sich die Gegenfrage: Warum brauchen wir sie? Stehen die Kosten im Verhältnis zum Wert des Ergebnisses? Schließlich verschieben sich die Schnittpunkte, wenn die MA-Parameter nur minimal verändert werden. Höchstwahrscheinlich wird es von der Leitung des Kursprojekts verlangt

Grund der Beschwerde: