Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3690
Beiträge: 36325
Benutzer: 5.838
Aktive Benutzer: 535
Links: 80
Wir begrüßen unseren neuesten Benutzer: Tradan
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Tradan
vor 4 Stunden
- pfg
vor 16 Stunden
- Traderin
vor einem Tag
- wehu58
vor einem Tag
- chrislybar...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 40
Gesamt: 42
Team: 0
Team:  
Benutzer:  Stengah966, tomtrader
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard falsche Object-preise

Hallo,
ich habe mir einen EA erstellt, der von einem Indikator erstellte Linien mit einbindet. Um die Preislevels der Objekte zubekommen, loope ich mit einer for-schleife durch die Objekte und lasse mir die Preise wieder geben. Komischerweise werde Objektpreise ausgegeben, die es laut Chart gar nicht an den Stellen gibt! Deswegen werden Orders geöffnet an Stellen die ich nicht nachvollziehen kann.

[IMG]
[/IMG]

Die pinken/lilanen Linien sind die Res/Sup Linien.
Ich bin über jede Hilfe dankbar.
Hier der Code:

PHP-Code:
extern int magicnumber 111;
extern double lotsize 0.1;
extern int ATR_multiplier 3;
extern int starttime 6;
extern int endtime 20

datetime timestamp 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   
//---
   
return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   
//---_Indicator_Call-----
   
int ATR_timeframe 0;
   
int ATR_periode 10;
   
double ATR_value iATR(NULL,ATR_timeframe,ATR_periode,1);
   
   
int CCI_timeframe 0;
   
int CCI_periode 14;
   
double CCI_value iCCI(NULL,CCI_timeframe,CCI_periode,PRICE_CLOSE,1);
    
   
   
//---Stoploss-----

   
double stopplossshort Close[1] + ATR_value ATR_multiplier;
   
double stopplosslong Close[1] - ATR_value ATR_multiplier;
   
   
//---TakeProfit-----
   
   
double takeprofitshort 0;
   
double takeprofitlong 0;
   
   
//---Check_for_objects-----
 
   
if(ObjectsTotal(0,0,OBJ_TREND) == 0)
      {
Alert("No objects available");}
      
   
//---Variable_definition-----
   
double object_price;
   
string object_name;
   
   
//---OrderSend-----  
   
for(int i 0<= ObjectsTotal(0,0,OBJ_TREND) - 1i++)
      {
      
object_name ObjectName(i);
      
object_price ObjectGetDouble(0,object_name,OBJPROP_PRICE1);
       
//---Sell_Order-----         
      
if((High[1] - object_price) > (Point/2)  &&      //High[1] > object_price     
         
(object_price Close[1]) > (Point/2) &&      //Close[1]< object_price    
         
check_price_in_MA() == true &&
         
CCI_value >= 100            && 
         
trading_hour() == true      &&
         
check_newbar() == true      &&
         
Volume[0] == 1
            {
            
Alert("Close = ",Close[1]," objectprice = ",object_price," High = "High[1]);      
            if(!
OrderSend(Symbol(),OP_SELL,lotsize,Bid,5,stopplossshort,takeprofitshort,"",magicnumber,0,Red))
               {
               
Alert("failed to send Sell order = ",GetLastError());
               }
            }               
      
//---Buy_Order-----       
      
if((object_price Low[1]) > (Point/2) &&         // object_price > Low[1]    
         
(Close[1] - object_price) > (Point/2) &&      // Close[1] >= object_price    
         
check_price_in_MA() == true &&
         
CCI_value <= -100           &&
         
trading_hour() == true      &&
         
check_newbar() == true      &&
         
Volume[0] == 1)   
            {
            
Alert("Close = ",Close[1]," objectprice = ",object_price," Low = "Low[1]);             
            if(!
OrderSend(Symbol(),OP_BUY,lotsize,Ask,5,stopplosslong,takeprofitlong,"",magicnumber,0,Blue))
               {
               
Alert("failed to send Sell order = ",GetLastError());
               }
            }
       }     

   
//---TSL-----

      
double trailingSLrange Close[1] + ATR_value *ATR_multiplier Close[1];
      for(
int i 0<= OrdersTotal(); i++)
         {
         
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          
//---Check_trailing_SL_short--
         
if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == magicnumber && (((OrderStopLoss() - Bid) - trailingSLrange) > Point/2)) 
            {
            
double newstopploss_short Bid trailingSLrange;
            if(!
OrderModify(OrderTicket(),OrderOpenPrice(),newstopploss_short,0,0,Red))
               {
               
Alert("Ordermodify short failed ",Symbol()," "GetLastError());
               } 
            }
             
//---Check_trailing_SL_long--
          
if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == magicnumber && (((Ask OrderStopLoss()) - trailingSLrange) > Point/2))
            {
            
double newstopploss_long Ask trailingSLrange
            if(!
OrderModify(OrderTicket(),OrderOpenPrice(),newstopploss_long,0,0,Blue))
               {
               
Alert("Ordermodify short failed ",Symbol()," "GetLastError());
               } 
            }         
         }
   
   
//---Comment---
   
Comment"MN = ",magicnumber,
            
"\nTradinghours = ",trading_hour(),
            
"\nObjectstotal = ",ObjectsTotal(0,0,OBJ_TREND),
            
"\nSpread = ",MarketInfo(Symbol(),MODE_SPREAD),
            
"\nATR_multiplier = ",ATR_multiplier);
      
  }
//+------------------------------------------------------------------+


//---Check_Tradinghours--------------------------------------------------------------------- 
bool trading_hour()
   {
   if(
starttime TimeHour(TimeCurrent()) && TimeHour(TimeCurrent()) < endtime)
      {
      return (
true);
      }
      else return(
false);
   }
//---Check_MA--------------------------------------------------------------------- 
bool check_price_in_MA()
   {
      
//---MA_5min-----
   
int SMA200_5_timeframe 5;
   
int SMA200_5_periode 200;
   
double SMA200_5_value iMA(NULL,SMA200_5_timeframe,SMA200_5_periode,0,MODE_SMA,PRICE_CLOSE,1);   
   
   
int EMA100_5_timeframe 5;
   
int EMA100_5_periode 100;
   
double EMA100_5_value iMA(NULL,EMA100_5_timeframe,EMA100_5_periode,0,MODE_EMA,PRICE_CLOSE,1); 
   
   
int EMA50_5_timeframe 5;
   
int EMA50_5_periode 50;
   
double EMA50_5_value iMA(NULL,EMA50_5_timeframe,EMA50_5_periode,0,MODE_EMA,PRICE_CLOSE,1);  
      
//---MA 15min-----
   
int SMA200_15_timeframe 15;
   
int SMA200_15_periode 200;
   
double SMA200_15_value iMA(NULL,SMA200_15_timeframe,SMA200_15_periode,0,MODE_SMA,PRICE_CLOSE,1);   
   
   
int EMA100_15_timeframe 15;
   
int EMA100_15_periode 100;
   
double EMA100_15_value iMA(NULL,EMA100_15_timeframe,EMA100_15_periode,0,MODE_EMA,PRICE_CLOSE,1); 
   
   
int EMA50_15_timeframe 15;
   
int EMA50_15_periode 50;
   
double EMA50_15_value iMA(NULL,EMA50_15_timeframe,EMA50_15_periode,0,MODE_EMA,PRICE_CLOSE,1);  
   
//---MA_60min-----
   
int SMA200_60_timeframe 60;
   
int SMA200_60_periode 200;
   
double SMA200_60_value iMA(NULL,SMA200_60_timeframe,SMA200_60_periode,0,MODE_SMA,PRICE_CLOSE,1);   
   
   
int EMA100_60_timeframe 60;
   
int EMA100_60_periode 100;
   
double EMA100_60_value iMA(NULL,EMA100_60_timeframe,EMA100_60_periode,0,MODE_EMA,PRICE_CLOSE,1); 
   
   
int EMA50_60_timeframe 60;
   
int EMA50_60_periode 50;
   
double EMA50_60_value iMA(NULL,EMA50_60_timeframe,EMA50_60_periode,0,MODE_EMA,PRICE_CLOSE,1);  

   
   if((
High[1] >= SMA200_5_value  && Low[1] <=  SMA200_5_value )|| 
      (
High[1] >= SMA200_15_value && Low[1] <=  SMA200_15_value)||
      (
High[1] >= SMA200_60_value && Low[1] <=  SMA200_60_value)||
      (
High[1] >= EMA100_5_value  && Low[1] <=  EMA100_5_value )||
      (
High[1] >= EMA100_15_value && Low[1] <=  EMA100_15_value)||
      (
High[1] >= EMA100_60_value && Low[1] <=  EMA100_60_value)||
      (
High[1] >= EMA50_5_value   && Low[1] <=  EMA50_5_value  )||
      (
High[1] >= EMA50_15_value  && Low[1] <=  EMA50_15_value )||
      (
High[1] >= EMA50_60_value  && Low[1] <=  EMA50_60_value ))
         {
         return (
true);
         }
         else return(
false);
   }
   
//---Check_Tradinghours---------------------------------------------------------------------
 
bool check_newbar()
   {
   
datetime current_bartime iTime(Symbol(),PERIOD_M5,0);
   if(
current_bartime != timestamp)
      {
      
timestamp current_bartime;
      return (
true);
      } 
      else return (
false); 
      } 
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: May 2015
Beiträge: 162
next user befindet sich auf einem aufstrebenden Ast
Standard

Ich kann dein Problem ehrlich gesagt grad nicht rekonstruieren.
Auch sehe ich in deinem Screen keine falschen Preisangaben.

Vielleicht bin ich einfach blind. Was genau beim Screen ist denn falsch. Bei beiden Preisangaben sehe ich eine Linie.

Vielleicht kannst du mal den indikator posten, damit ich testen kann.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort.

Hm... Vielleicht habe ich das blöd geschrieben. Auf dem Screenshot sind drei pinke/lila Linien , jeweils bei ca. 12780/12770/12747. Das andere sind die S/L(rot) und Tradeeröffnungslinien(gelb).

Voraussetzung für eine Sellorder sind u.a. High[1] > Objektpreis && Close[1] < Objektpreis.
Voraussetzung für eine Buyorder sind u.a. Low[1] < Objektpreis && Close[1] > Objektpreis.

Nun hat der EA aber bei ca. 12796 zwei Sellorder eröffnet. Dort befindet sich aber keine lila Linie. Gleiches gilt für die Buyorder. Deswegen habe ich mir den relevanten "objectprice" anzeigen lassen, wenn der EA eine Position eröffnet, wie im Screenshot zu sehen. Das macht mich nun stutzig, da es ja anscheinend Objekte gibt bei 12800 und 12763. Ich kann diese aber nicht sehen und ich verstehe nicht warum..

Hier der Indikator:


PHP-Code:
extern int periode_to_next_extremum 20;
extern int bars_to_check 40;
extern int history_15 200;
extern int history_60 300;
extern int start_indicator 4;
extern int stop_indicator 20;
double ResLevel[], SupLevel[];
datetime ResTime[],SupTime[];
int objectcounterRES 1;
int objectcounterSUP 1;
string NameRES "lineRES";
string NameSUP "lineSUP";

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   
ArrayResize(ResLevel,1);
   
ArrayResize(ResTime,2);
   
ArrayResize(SupLevel,1);
   
ArrayResize(SupTime,2);
//---
   
return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const 
int prev_calculated,
                const 
datetime &time[],
                const 
double &open[],
                const 
double &high[],
                const 
double &low[],
                const 
double &close[],
                const 
long &tick_volume[],
                const 
long &volume[],
                const 
int &spread[])
  {

//---
   
check_15TF();
   
check_60TF(); 
  
//+-------check_for_objectdelete-----------------------------------------------------------+ 

  
check_for_objectdelete();      
  
//--- return value of prev_calculated for next call
   
return(rates_total);
  }
//+------------------------------------------------------------------+

void OnDeinit(const int reason)
   {
   
int number_of_objects_deleted ObjectsDeleteAll(0,"",0,-1);
   Print(
"number_of_objects-deleted = "number_of_objects_deleted);
   }
//+-------check_for_objectdelete_in_nighttime-----------------------------------------------------------+
   
void check_for_objectdelete()
   {
   for(
int i 0<= ObjectsTotal()-1i++)
      {
      
string object_name ObjectName(i);
      
datetime object_time ObjectGet(object_name,OBJPROP_TIME1);
      if(
start_indicator >= TimeHour(object_time) && TimeHour(object_time) <= stop_indicator)
         {
         
ObjectDelete(ChartID(),object_name);
         }
      }
   }

//+-------check_for_S/R_15min-----------------------------------------------------------+ 
int check_15TF()
   {
   
int limit;
   
int counted_bars IndicatorCounted();
   
//---- check for possible errors 
   
if(counted_bars<0) return(-1);
   
limit=Bars counted_bars;
   
//---limit to n bars
   
if(limit history_15limit history_15;
   
int timeframe_15 15;
   
//---- S/R_Calculations_15min----------------------
   
for(int i 1limiti++)
      {
      
//--Resistance_15min----
      
if(iHighest(NULL,timeframe_15,MODE_HIGH,bars_to_check,i) == periode_to_next_extremum)
         {
         
ResLevel[0] = iHigh(Symbol(),PERIOD_M15,periode_to_next_extremum);
         
ResTime[0] = iTime(Symbol(),PERIOD_M15,periode_to_next_extremum);
         
ResTime[1] = iTime(Symbol(),PERIOD_M15,periode_to_next_extremum) + 9999999;
         
objectcounterRES++;
         
//------Colour-----
         
if(!ObjectCreate(NameRES + (string)objectcounterRES,OBJ_TREND,0,ResTime[0],ResLevel[0],ResTime[1],ResLevel[0]))
            {
            Print(
"Failed to create Trend: "GetLastError());      
            }
         
//------Colour-----
         
if(!ObjectSetInteger(0,NameRES + (string)objectcounterRES,OBJPROP_COLOR,clrMagenta))
            Print(
"Failed to set colour"GetLastError());   
         
//------Show_in_5min_chart-----
         
if(!ObjectSetInteger(ChartID(),NameRES + (string)objectcounterRES,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15))
            {
            Print(
"Failed to adjust timeframe: "GetLastError());
            }
            
         }
      
//--Support_15min---
      
if(iLowest(NULL,timeframe_15,MODE_LOW,bars_to_check,i) == periode_to_next_extremum)
         {
         
SupLevel[0] = iLow(Symbol(),PERIOD_M15,periode_to_next_extremum);
         
SupTime[0] = iTime(Symbol(),PERIOD_M15,periode_to_next_extremum);
         
SupTime[1] = iTime(Symbol(),PERIOD_M15,periode_to_next_extremum) + 9999999;
         
objectcounterSUP++;
         
//------Colour-----
         
if(!ObjectCreate(NameSUP + (string)objectcounterSUP,OBJ_TREND,0,SupTime[0],SupLevel[0],SupTime[1],SupLevel[0]))
            {
            Print(
"Failed to create Trend: "GetLastError());      
            }
         
//------Colour-----
         
if(!ObjectSetInteger(0,NameSUP + (string)objectcounterSUP,OBJPROP_COLOR,clrMagenta))
            Print(
"Failed to set colour"GetLastError());
         
//------Show_in_5min_chart-----
         
if(!ObjectSetInteger(ChartID(),NameSUP + (string)objectcounterSUP,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15))
            {
            Print(
"Failed to adjust timeframe: "GetLastError());
            }          
         }
      }
   return(
0);}

//+-------check_for_S/R_60min-----------------------------------------------------------+ 
int check_60TF()
   {
   
int limit;
   
int counted_bars IndicatorCounted();
   
//---- check for possible errors 
   
if(counted_bars<0) return(-1);
   
limit=Bars counted_bars;
   
//---limit to n bars
   
if(limit history_60limit history_60;
   
int timeframe_60 60;
   
//---- S/R_Calculations_15min----------------------
   
for(int i 1limiti++)
      {
      
//--Resistance_15min----
      
if(iHighest(NULL,timeframe_60,MODE_HIGH,bars_to_check,i) == periode_to_next_extremum)
         {
         
ResLevel[0] = iHigh(Symbol(),PERIOD_H1,periode_to_next_extremum);
         
ResTime[0] = iTime(Symbol(),PERIOD_H1,periode_to_next_extremum);
         
ResTime[1] = iTime(Symbol(),PERIOD_H1,periode_to_next_extremum) + 9999999;
         
objectcounterRES++;
         
//------Colour-----
         
if(!ObjectCreate(NameRES + (string)objectcounterRES,OBJ_TREND,0,ResTime[0],ResLevel[0],ResTime[1],ResLevel[0]))
            {
            Print(
"Failed to create Trend: "GetLastError());      
            }
         
//------Colour-----
         
if(!ObjectSetInteger(0,NameRES + (string)objectcounterRES,OBJPROP_COLOR,clrDeepPink))
            Print(
"Failed to set colour"GetLastError());   
         
//------Show_in_5min_chart-----
         
if(!ObjectSetInteger(ChartID(),NameRES + (string)objectcounterRES,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_H1))
            {
            Print(
"Failed to adjust timeframe: "GetLastError());
            }
            
         }
      
//--Support_15min---
      
if(iLowest(NULL,timeframe_60,MODE_LOW,bars_to_check,i) == periode_to_next_extremum)
         {
         
SupLevel[0] = iLow(Symbol(),PERIOD_H1,periode_to_next_extremum);
         
SupTime[0] = iTime(Symbol(),PERIOD_H1,periode_to_next_extremum);
         
SupTime[1] = iTime(Symbol(),PERIOD_H1,periode_to_next_extremum) + 9999999;
         
objectcounterSUP++;
         
//------Colour-----
         
if(!ObjectCreate(NameSUP + (string)objectcounterSUP,OBJ_TREND,0,SupTime[0],SupLevel[0],SupTime[1],SupLevel[0]))
            {
            Print(
"Failed to create Trend: "GetLastError());      
            }
         
//------Colour-----
         
if(!ObjectSetInteger(0,NameSUP + (string)objectcounterSUP,OBJPROP_COLOR,clrDeepPink))
            Print(
"Failed to set colour"GetLastError());
         
//------Show_in_5min_chart-----
         
if(!ObjectSetInteger(ChartID(),NameSUP + (string)objectcounterSUP,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_H1))
            {
            Print(
"Failed to adjust timeframe: "GetLastError());
            }          
         }
      }
   return(
0);} 
Ich benutze noch ein anderen Indikator, der mir MAs auf verschiedenen timeframes anzeigt. Falls der relevant ist, kann ich den auch noch posten.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Eben ist mir noch was aufgefallen... und zwar liegt der objectprice bei der ersten Sellorder 12802 und bei der zweiten bei 12800.4, wie im Screenshot ...
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: May 2015
Beiträge: 162
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Traderole Beitrag anzeigen
Hm... Vielleicht habe ich das blöd geschrieben.
Ne ne. Hab bei mir schon vor längerer Zeit das Aussehen der Orderlinien geändert. Hatte vergessen, das diese normal ja gestrichelt sind

Ich hab mir mal alle Objekte in der for-Schleife ausgeben lassen und gesehen, das einige von ihnen wirklich nicht im Chart zu finden sind.
Binn dann zur Objektliste, entsprechende Linien -> Eigenschaften und habe dann gesehen, das diese "unsichtbaren" Linien vorhanden,
aber nicht im momentanen Timeframe (H1 bei mir) angezeigt werden (siehe Screen).



Somit verarbeitet dein EA ALLE Linien, obwohl nicht alle im momentanen Timeframe vorhanden sind.
Ich denke bei dir war es vielleicht auch so. Somit wurde bei dir eine Order gesetzt, obwohl "scheinbar keine" Linie vorhanden ist.

Setze mal beim Verarbeiten der Linien im EA den aktuellen Timeframe als Bedingung.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Setze mal beim Verarbeiten der Linien im EA den aktuellen Timeframe als Bedingung.
Gute Idee! Ich werde das mal so umsetzen.

Ich habe den Fall heute weiter beobachtet. Anscheinend werden nicht nur Linien (bzw. Trendlinien) verarbeitet, sondern auch alle anderen Objekte, wie zB. Arrows (siehe screenshot; das sind hier in diesem Fall vorherige Stoppmarken). Gleichermaßen wurde an einer anderen Stelle eine Order geöffnet, wo eine Tradeeröffnungslinie lang geht von einer anderen Order. Beides verwirrt mich nun, da ich ja in der for-schleife nur Trendlinen rausfilter..

[IMG][/IMG]
Mit Zitat antworten
  #7 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: May 2015
Beiträge: 162
next user befindet sich auf einem aufstrebenden Ast
Standard

Zwei dinge zu folgendem Code
Code:
for(int i = 0; i <= ObjectsTotal(0,0,OBJ_TREND) - 1; i++)
1. Das
Code:
i <= ObjectsTotal(0,0,OBJ_TREND) - 1
wäre so besser
Code:
i < ObjectsTotal(0,0,OBJ_TREND)
2. In der for-Schleife verarbeitest du NICHT NUR Trendlinien, sondern nutzt lediglich deren Anzahl.
Wenn alle Trendlinien nicht zufällig ganz oben in der kompletten Objektliste sind, werden auch andere Objekte von dir mit
Code:
object_name = ObjectName(i);
verarbeitet, schließlich nimmst du mit deiner Schleife LEDIGLICH die ersten x Objekte (Anzahl der OBJ_TREND) aus der Objektliste, ganz egal, welchen Typ diese haben.

Ich würde sagen, du änderst deine Schleife in folgende
Code:
for(int i = 0; i < ObjectsTotal(0,0,-1); i++)
{
   if(ObjectType(ObjectName(i)) != OBJ_TREND)
      continue;
      
   ...   
}
Mit Zitat antworten
  #8 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Du hast recht. Das war mir gar nicht so bewusst gewesen. Ich habe deine Empfehlungen so umgesetzt... Best Dank für die Hilfe!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
mql4, object, object preise, objekte, programierung mql4, programmierung, programmierung metatrader


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 15:13 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------