Fragen von einem "Dummy" - Seite 81

 
tol64:

Können Sie mir sagen, in welchen Fällen der Wert eines Ticks unterschiedlich sein kann, je nachdem, ob die Position gerade im Gewinn oder im Verlust ist?

SYMBOL_TRADE_TICK_VALUE_PROFIT

SYMBOL_TRADE_TICK_VALUE_LOSS

Führen Sie eine Suche im Forum durch. Etwas Ähnliches wurde schon einmal diskutiert.
 

Sie müssen das Ergebnis der letzten Transaktion abrufen. Was mache ich falsch? :

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
   	HistorySelect(0,TimeCurrent());
   	 ticket = HistoryDealGetTicket(i);
   	 profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
infera:

Sie müssen das Ergebnis der letzten Transaktion abrufen. Was mache ich falsch? :

Ich glaube, es geht so

   HistorySelect(0,TimeCurrent());

   i = HistoryDealsTotal(); 
   
   if (i > 1)  {
        
        ticket = HistoryDealGetTicket(i-1);
        profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
   }
 
sergey1294:

Ich glaube, es geht so

Danke, es funktioniert.
 

Ich experimentiere mit dem Löschen von unnötigen Handles. In einem einfachen Beispiel ohne Zeilen IndicatorRelease(ma_handle); funktioniert alles gut und schnell.

Aber im OHLC-Modus bleibt das System fast hängen.

double ma2[];int ma2_handle;double ma[];int ma_handle;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{ 
    ma_handle  = iMA(_Symbol,_Period,10, 0,MODE_SMA, PRICE_CLOSE);
    ma2_handle = iMA(_Symbol,_Period,100, 0,MODE_SMA, PRICE_CLOSE);
   IndicatorRelease(ma_handle);
   IndicatorRelease(ma2_handle);
}
 
Karlson:

Ich experimentiere mit dem Löschen von unnötigen Handles. In einem einfachen Beispiel ohne Zeilen IndicatorRelease(ma_handle); funktioniert alles gut und schnell.

Aber im OHLC-Modus bleibt das System fast hängen.

Das Erstellen und Löschen von Indikator-Handles bei jedem Tick ist falsch. Das ist so, als würde man sein Auto an jeder Ampel und vor jedem Fußgängerüberweg anhalten und starten.
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Rosh:
Das Erstellen und Löschen von Indikator-Handles bei jedem Tick ist nicht richtig. Das ist so, als würde man an jeder Ampel und vor jedem Zebrastreifen sein Auto anhalten und starten.

Und ich möchte genauer auf die Griffe eingehen.

Wenn die Handles bei der Deinitialisierung (IndicatorRelease) nicht entfernt wurden und das Programm gleichzeitig aus dem Chart entfernt wurde, werden die Handles dann automatisch entfernt?

Noch eine Sache. Die Referenz besagt, dass es Speicherplatz spart. Um wie viel? Ich würde Ihnen gerne einige Zahlen darüber nennen, wie viele Ressourcen durch Indikatorgriffe verbraucht werden.

 
tol64:

Und ich möchte etwas zu den Griffen sagen.

Wenn die Handles bei der Deinitialisierung nicht gelöscht wurden (IndicatorRelease), aber das Programm gleichzeitig aus dem Chart gelöscht wurde, werden die Handles dann automatisch gelöscht?

Ja, wenn das Terminal-Laufzeitsystem ein nicht mehr genutztes Handle entdeckt, das von niemandem beansprucht wird, wird es automatisch gelöscht. Ich kann Ihnen im Moment nicht sagen, wie lange ein solcher Griff hält.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
tol64:

Noch eine Sache. Die Referenz besagt, dass es Speicherplatz spart. Um wie viel? Können Sie beziffern, wie viele Ressourcen die Indikator-Handles verbrauchen?

Wenn derselbe Indikator für 10 Diagramme angefordert wird, dann ist die Einsparung 10-mal. Wenn ja, berechnen Sie die Anzahl der Balken, auf denen der Indikator berechnet wird, und multiplizieren Sie sie mit der Anzahl der Indikatorpuffer, multiplizieren Sie sie mit der Größe des Doppels und vergessen Sie nicht den Speicher der Farbpuffer, falls es welche gibt.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Rosh:
Das Erstellen und Entfernen von Indikator-Handles bei jedem Tick ist falsch. Das ist so, als würde man sein Auto an jeder Ampel und vor jedem Zebrastreifen aus- und einschalten.

Im Expert Advisor wird die Funktion bei einem neuen Wochenbalken ausgeführt, neue Indikatoren werden erstellt und die Mathematik ist fertig. Dann muss sie aufgeräumt werden... Also, wenn man die IndicatorRelease Zeile aktiviert, friert sie fast ein... Es reicht, sie zu entfernen, und alles fliegt trotz des ganzen Mülls.

double ma[];int ma_handle;datetime time[],lastbar;

int OnInit()
 {  
  return(0);
 }

void OnTick() 
{  
   if(CopyTime(_Symbol,PERIOD_W1,0,1,time)<=0) {Print("Error: ",GetLastError());return;}
   if (lastbar!=time[0]) {Optim();}
}


int Optim()
{
   ma_handle  = iMA(_Symbol,PERIOD_M15,20, 0,MODE_SMA, PRICE_CLOSE);
 ------------------

 ------------------
   IndicatorRelease(ma_handle);

   return (0);
}