Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43261
Benutzer: 7.224
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Tagen
- Sundaytrad...
vor 5 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 181
Gesamt: 181
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree5Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #31 (permalink)  
Alt 20.01.21
Mitglied
 
Registriert seit: Apr 2018
Beiträge: 103
daybyter befindet sich auf einem aufstrebenden Ast
Standard

Lass es halt mal im Tester laufen
  #32 (permalink)  
Alt 21.01.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Im Anhang die neueste Version. Schien heute im EURUSD zu funktionieren. Aber wie gesagt bin ich nicht gerade Experte...

Im USDJPY funktionierte er allerdings nicht ganz so wie er sollte. Vermute, dass es an den 3 Nachkommastellen liegt. Er berechnet Alles mit
Code:
NormalizeDouble( ... *_Point,_Digits )
Die Werte, bei denen geöffnet/geschlossen wird, sehn komisch aus. Der EA scheint seine Arbeit allgemein richtig zu machen. Aber da scheints nen Durcheinander mit Ask / Bid / OrderOpenPrice() / OrderClosePrice() zu geben. Deswegen hatte ich vor einiger Zeit gefragt, ob, wenn z.B. nen Buy raus geht, bzw. schon im Markt ist, man sich für weitere Berechnungen nach dem Ask oder dem Bid richten muss. Und ob man sich bei nem Sell, der schon im Markt ist, für weitere Berechnungen an Bid oder Ask orientieren muss. Irgendwie scheint das Niemand so richtig zu wissen.
Angehängte Dateien
Dateityp: mq4 LoShD_MNpm.mq4 (37,0 KB, 1x aufgerufen)
  #33 (permalink)  
Alt 21.01.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Deswegen hatte ich vor einiger Zeit gefragt, ob, wenn z.B. nen Buy raus geht, bzw.... BLA BLA BLA .... Irgendwie scheint das Niemand so richtig zu wissen.
Dir hier in diesem Thema schon die Antwort gegeben
  #34 (permalink)  
Alt 21.01.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hallo.

Deswegen hatte ich vor einiger Zeit gefragt, ob, wenn z.B. nen Buy raus geht, bzw. schon im Markt ist, man sich für weitere Berechnungen nach dem Ask oder dem Bid richten muss. Und ob man sich bei nem Sell, der schon im Markt ist, für weitere Berechnungen an Bid oder Ask orientieren muss. Irgendwie scheint das Niemand so richtig zu wissen.
Das wissen hier alle.

traderdoc
TogoTiger likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #35 (permalink)  
Alt 22.01.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Bei manchen Forex-Pairs funktioniert das Gerät im Anhang anscheinend richtig und bei Manchen nicht.

Entweder kann das Ding nicht mit den ganzen MagicNumbers umgehn

oder

bei der Rechnerei läuft irgendwas schief. Was ich eher vermute. Aber mit NormalizeDouble müsste doch Alles richtig berechnet werden.

So soll berechnet werden, wann weitere Orders geöffnet oder Alle geschlossen werden sollen. Ist doch eigentlich korrekt. Trotzdem wird bei vielen ForexPairs anscheinend nicht zum richtigen Zeitpunkt geöffnet, geschweige denn Alles geschlossen.
Code:
extern string esDOONO1="Dist to OrderOpenPrice()";
 extern string esDOONO2="open next Order";

 extern int D_ONO=25;
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOCAO1="Dist to OrderOpenPrice()";
 extern string esDOCAO2="close all Orders";

  extern int D_CAO=50
Code:
//    Prüfen, ob FirstSel unter D_ONO ist:
        FiSel_DONO=NormalizeDouble(OrderOpenPrice()-D_ONO*_Point,_Digits);

 //    Wenn FirstSel unter D_ONO ist...      
      if(Bid<=FiSel_DONO){ "...weitere Sell-Orders öffnen..."


 //    Prüfen, ob FirstBuy über D_ONO ist:
FiBuy_DONO=NormalizeDouble(OrderOpenPrice()+D_ONO*_Point,_Digits);

//    Wenn FirstBuy über D_ONO ist...
       if(Ask>=FiBuy_DONO){"...weitere Buy-Orders öffnen..."
Code:
 //            ...prüfen, ob FirstSel Gewinn-Dist erreicht hat:
              FiSel_DCAO=NormalizeDouble(OrderOpenPrice()-D_CAO*_Point,_Digits);

//            Wenn FirstSell Gewinn-Dist erreicht hat...
              if(Ask<=FiSel_DCAO){"...alle Orders schließen..."

 FiBuy_DCAO=NormalizeDouble(OrderOpenPrice()+D_CAO*_Point,_Digits);


//        Wenn FirstBuy Gewinn-Dist erreicht hat...
           if(Bid>=FiBuy_DCAO){"...alle Orders schließen..."
Hier noch mal der ganze Code.
Code:
/*=============================================================================================================
// N O T I Z E N   U N D   I N F O S
//=============================================================================================================

In dieser Vers. werden keine Tickets benutzt!


//-------------------------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------------------------

In dieser Vers. werden neue Orders geöffnet,
wenn die vorherigen im Gewinn-Bereich sind.

Umgekehrt ist vermutlich nicht so gut...

//-------------------------------------------------------------------------------------------------------------


//=============================================================================================================
// P R O P E R T Y
//============================================================================================================*/
//#property strict
//#ps sorgt anscheinend dafür, dass Kommentare im Konfig-Fenster im MT4 sichtbar sind.
#property copyright"LoShD_MNpm.mq4"
#property copyright"daniel-rudloff@web.de"
//=============================================================================================================
// B E S C H R E I B U N G
//=============================================================================================================
extern string esTOY="true  = on / yes";
extern string esFON="false = off / no";
//-----------------------------------------------------------------------------------------------------------*/
extern string esB01="Open 1.Sell & 1.Buy.";
extern string esB02="If (last) Sell <=";
extern string esB03="( OrderOpenPrice()";
extern string esB04="- D_ONO )";
extern string esB05="open more Sell";
extern string esB06="till";
extern string esB07="1.Sell <=";
extern string esB08="( OrderOpenPrice() - D_CAO ).";
extern string esB09="If (last) Buy >=";
extern string esB10="( OrderOpenPrice()";
extern string esB11="+ D_ONO )";
extern string esB12="open more Buy";
extern string esB13="till";
extern string esB14="1.Buy >=";
extern string esB15="( OrderOpenPrice()";
extern string esB16="+ D_CAO )";
//=============================================================================================================
// E I N S T E L L U N G E N
//=============================================================================================================
extern string esMNF1="Magic Numbers";
extern int MN_FiSel=12;
extern int MN_FiBuy=34;

extern string esMNNSD="MN_NeSel--";
extern int MN_NeSel_def=4999;

extern string esMNNBD="MN_NeBuy++";
extern int MN_NeBuy_def=5001;

//-----------------------------------------------------------------------------------------------------------*/
extern string esOOFT1="Open Orders";
extern string esOOFT2="from/till Hour";
extern string esOOFT3="(Server Time)";
extern int FromH=5;//  Vor 5 Uhr starten scheint sich nicht zu lohnen.
extern int TillH=15;// Zum Testen bis einschließlich 15 Uhr öffnen lassen.
//-----------------------------------------------------------------------------------------------------------*/
extern int Slippage=12345;
//-----------------------------------------------------------------------------------------------------------*/
extern int SL=475;// ?
//-----------------------------------------------------------------------------------------------------------*/
extern int TP=325;// ?
//-----------------------------------------------------------------------------------------------------------*/
extern string esIITCBSMS1="if IsTradeContexBusy()";
extern string esIITCBSMS2="sleep MS";
extern int slMS=20;//
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOONO1="Dist to OrderOpenPrice()";
extern string esDOONO2="open next Order";
extern int D_ONO=25;// Zum Testen ...
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOCAO1="Dist to OrderOpenPrice()";
extern string esDOCAO2="close all Orders";
extern int D_CAO=50;// Zum Testen ... Weniger als ca. ?   ? ist wahrscheinlich nicht ausreichend?
//-----------------------------------------------------------------------------------------------------------*/
extern int OrdersNeed_Multi=3;// Zum Testen 3. 1-4?
//-----------------------------------------------------------------------------------------------------------*/
extern double Lots=0.01;
extern double LotsPlus=0.0;// Zum Testen 0.01? Lots automatisch erhöhen nach jedem Durchgang?
//=============================================================================================================
// G L O B A L E   D E K L A R A T I O N E N
//=============================================================================================================
bool
fiSH,fiLO,
neSH,neLO,
OC
;
//-----------------------------------------------------------------------------------------------------------*/
double
SL_Sel,SL_Buy,TP_Sel,TP_Buy,MSL,
FiSel_DONO,FiBuy_DONO,
NeSel_DONO,NeBuy_DONO,
FiSel_DCAO,FiBuy_DCAO
;
//-----------------------------------------------------------------------------------------------------------*/
int
TI_FiSel,TI_FiBuy,TI_NeSel,TI_NeBuy,
MN_NeSel,MN_NeBuy,
i,j,k,l,m,n,o,p,q,r,s,t,u,
Opened_Sel,Opened_Buy,
Need_Sel,Need_Buy
;
//=============================================================================================================
// I N I T / D E I N I T
//=============================================================================================================
void OnInit(){}
void OnDeinit(const int reason){}// DeInit überflüssig?
//=============================================================================================================
// E A   F U N K T I O N E N   S T A R T
//=============================================================================================================int 
void OnTick(){
//=============================================================================================================
// S T O P   L O S S
//=============================================================================================================
//SL auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(SL<1){
  SL_Sel=0.0;
  SL_Buy=0.0;}
if(SL>=1){
  SL_Sel=NormalizeDouble(Bid+SL*_Point,_Digits);
  SL_Buy=NormalizeDouble(Ask-SL*_Point,_Digits);}
//SL genauso groß wie Minstoplevels machen, wenn er kleiner ist:
MSL=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(SL_Sel<MSL)SL_Sel=MSL;
if(SL_Buy<MSL)SL_Buy=MSL;
//=============================================================================================================
// T A K E   P R O F I T
//=============================================================================================================
//TP auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(TP<1){
  TP_Sel=0.0;
  TP_Buy=0.0;}
if(TP>=1){
  TP_Sel=NormalizeDouble(Bid-TP*_Point,_Digits);
  TP_Buy=NormalizeDouble(Ask+TP*_Point,_Digits);}
//=============================================================================================================
// O R D E R   S E A R C H   1
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
//=============================================================================================================
// O P E N   F I R S T   S E L L / O P E N   F I R S T   B U Y
//=============================================================================================================
// Wenn gar keine Orders offen sind...
if(fiSH==false&&fiLO==false&&neSH==false&&neLO==false){
//MNs auf default setzen:
  MN_NeSel=MN_NeSel_def;
  MN_NeBuy=MN_NeBuy_def;
//Alle Zähler auf 0 setzen:
  Opened_Sel=0;
  Opened_Buy=0;
  Need_Sel  =0;
  Need_Buy  =0;
//Wenn zur Zeit Orders geöffnet werden dürfen FirstSel und FirstBuy öffnen.
  if(Hour()>=FromH&&Hour()<=TillH){
    if(IsTradeAllowed()==true)TI_FiSel=OrderSend(Symbol(),OP_SELL,Lots,NULL,Slippage,SL_Sel,TP_Sel,NULL,MN_FiSel,Blue);
    if(IsTradeContextBusy()==true)Sleep(slMS);
    if(IsTradeAllowed()==true)TI_FiBuy=OrderSend(Symbol(),OP_BUY,Lots,NULL,Slippage,SL_Buy,TP_Buy,NULL,MN_FiBuy,Blue);
    if(IsTradeContextBusy()==true)Sleep(slMS);}}
//=============================================================================================================
// O R D E R   S E A R C H   2
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(j=OrdersTotal()-1;j>=0;j--){
if(OrderSelect(j,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
// Wenn nur FirstSel und FirstBuy offen sind...
if(fiSH==true&&fiLO==true&&neSH==false&&neLO==false){
//...FirstSel / FirstBuy raus suchen:
  for(k=OrdersTotal()-1;k>=0;k--){
  if(OrderSelect(k,SELECT_BY_POS)){
  if(OrderSymbol()==Symbol()){
//=============================================================================================================
//  O P E N   F I R S T   N E X T   S E L L
//=============================================================================================================
//  FirstSel auswählen:
    if(OrderMagicNumber()==MN_FiSel){
//    Prüfen, ob FirstSel unter D_ONO ist:
      FiSel_DONO=NormalizeDouble(OrderOpenPrice()-D_ONO*_Point,_Digits);
//    Wenn FirstSel unter D_ONO ist...      
      if(Bid<=FiSel_DONO){

//      MN_NeSel(==MN_NeSel_def) um 1 verringern:
        MN_NeSel--;

//      ...erste NextSels öffnen:
        for(k=OrdersNeed_Multi;k>=1;k--){
          if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,NULL,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,Blue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Sel++;
          Need_Sel=OrdersNeed_Multi*Opened_Sel;
          Need_Buy=OrdersNeed_Multi*Need_Sel;
    } } }// FirstSel mit MN_FiSel ausgewählt.
//=============================================================================================================
//  O P E N   F I R S T   N E X T   B U Y
//=============================================================================================================
//  FirstBuy auswählen:
    if(OrderMagicNumber()==MN_FiBuy){
//    Prüfen, ob FirstBuy über D_ONO ist:
      FiBuy_DONO=NormalizeDouble(OrderOpenPrice()+D_ONO*_Point,_Digits);
//    Wenn FirstBuy über D_ONO ist...
      if(Ask>=FiBuy_DONO){

//      MN_NeBuy (==MN_NeBuy_def) um 1 erhöhen:
        MN_NeBuy++;

//      ...erste NextBuys öffnen:
        for(l=OrdersNeed_Multi;l>=1;l--){
          if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,NULL,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,Blue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Buy++;
          Need_Buy=OrdersNeed_Multi*Opened_Buy;
          Need_Sel=OrdersNeed_Multi*Need_Buy;
    } } }// FirstBuy mit MN_FiBuy ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
} } } }// nach Order Search 2
//=============================================================================================================
// O R D E R   S E A R C H   3
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(m=OrdersTotal()-1;m>=0;m--){
if(OrderSelect(m,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
//Wenn FirstSel und FirstBuy offen sind...
if(fiSH==true&&fiLO==true){
//=============================================================================================================
//  C H E C K   L A S T   N E X T   S E L L
//=============================================================================================================
//...und wenn NextSel offen ist...
  if(neSH==true){

//  ...letzten NextSel raus suchen:
    for(n=OrdersTotal()-1;n>=0;n--){
    if(OrderSelect(n,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){

      if(OrderMagicNumber()==MN_NeSel){

//      Wenn letzter NextSel unter D_ONO ist...
        NeSel_DONO=NormalizeDouble(OrderOpenPrice()-D_ONO*_Point,_Digits);
        if(Bid<=NeSel_DONO){

//        ...FirstSel raus suchen:
          for(o=OrdersTotal()-1;o>=0;o--){
          if(OrderSelect(o,SELECT_BY_POS)){
          if(OrderSymbol()==Symbol()){

            if(OrderMagicNumber()==MN_FiSel){

//            ...prüfen, ob FirstSel Gewinn-Dist erreicht hat:
              FiSel_DCAO=NormalizeDouble(OrderOpenPrice()-D_CAO*_Point,_Digits);
//=============================================================================================================
//            O P E N   M O R E   N E X T   S E L L
//=============================================================================================================
//            Wenn FirstSel Gewinn-Dist nicht erreicht hat...
              if(Ask>FiSel_DCAO){

//              MN_NeSel wieder um 1 verringern...
                MN_NeSel--;

//              ...und weitere SelOrders öffnen.
                for(p=Need_Sel;p>=1;p--){
                  if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,NULL,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,Blue);
                  if(IsTradeContextBusy()==true)Sleep(slMS);
                  Opened_Sel++;
                  Need_Sel=OrdersNeed_Multi*Opened_Sel;
                  Need_Buy=OrdersNeed_Multi*Need_Sel;}}
//=============================================================================================================
//            C L O S E   A L L   B Y   S E L
//=============================================================================================================//
//            Wenn FirstSell Gewinn-Dist doch erreicht hat...
              if(Ask<=FiSel_DCAO){
//              ...Lots erhöhen...
                Lots=OrderLots()+LotsPlus;// ?
//              ...und alle Orders schließen.
                for(q=OrdersTotal()-1;q>=0;q--){
                if(OrderSelect(q,SELECT_BY_POS)){
                if(OrderSymbol()==Symbol()){
                if(IsTradeAllowed()==true)OC=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,Red);
                if(IsTradeContextBusy()==true)Sleep(slMS);}}}}
//-----------------------------------------------------------------------------------------------------------*/
} } } } } } } } } }// neSh==true
//=============================================================================================================
//  C H E C K   L A S T   N E X T   B U Y
//=============================================================================================================
// wenn NextBuy offen ist...
  if(neLO==true){

//  ...letzten NextBuy auswählen:
    for(r=OrdersTotal()-1;r>=0;r--){
    if(OrderSelect(r,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){

    if(OrderMagicNumber()==MN_NeBuy){

//    Wenn letzter NextBuy über D_ONO ist...      
      NeBuy_DONO=NormalizeDouble(OrderOpenPrice()+D_ONO*_Point,_Digits);
      if(Ask>=NeBuy_DONO){

//      Prüfen, ob FirstBuy Gewinn-Dist erreicht hat:
        for(s=OrdersTotal()-1;s>=0;s--){
        if(OrderSelect(s,SELECT_BY_POS)){
        if(OrderSymbol()==Symbol()){
        
        if(OrderMagicNumber()==MN_FiBuy){

          FiBuy_DCAO=NormalizeDouble(OrderOpenPrice()+D_CAO*_Point,_Digits);
//=============================================================================================================
//        O P E N   M O R E   N E X T   B U Y
//=============================================================================================================         
//        Wenn FirstBuy Gewinn-Dist nicht erreicht hat...
          if(Bid<FiBuy_DCAO){

//          MN_NeBuy um 1 erhöhen...
            MN_NeBuy++;
            
//          ...und weitere Buy-Orders öffnen:
            for(t=Need_Buy;t>=1;t--){
              if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,NULL,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,Blue);
              if(IsTradeContextBusy()==true)Sleep(slMS);
              Opened_Buy++;
              Need_Buy=OrdersNeed_Multi*Opened_Buy;
              Need_Sel=OrdersNeed_Multi*Need_Buy;}}
//=============================================================================================================
//        C L O S E   A L L   B Y   B U Y
//=============================================================================================================
//        Wenn FirstBuy Gewinn-Dist doch erreicht hat...
          if(Bid>=FiBuy_DCAO){
//          ...Lots erhöhen...
            Lots=OrderLots()+LotsPlus;// ?
//          ...und alle Orders schließen.
            for(u=OrdersTotal()-1;u>=0;u--){
            if(OrderSelect(u,SELECT_BY_POS)){
            if(OrderSymbol()==Symbol()){
            if(IsTradeAllowed()==true)OC=OrderClose(OrderTicket(),OrderLots(),NULL,Slippage,Red);
            if(IsTradeContextBusy()==true)Sleep(slMS);}}}}
//-----------------------------------------------------------------------------------------------------------*/
} } } } } } } } } }// Letzter NextBuy ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
}// nach OS3. ( fiSH==true && fiLO==true )
//=============================================================================================================
// E A   F U N K T I O N E N   B E E N D E N
//=============================================================================================================
}// void OnTick()
Angehängte Dateien
Dateityp: mq4 LoShD_MNpm.mq4 (36,6 KB, 1x aufgerufen)
  #36 (permalink)  
Alt 23.01.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Hab den Verdacht, dass NormalizeDouble() alleine nicht ausreicht, um die eigenen Abstände, bei denen geöffnet oder geschlossen werden soll, richtig zu berechnen. Reicht diese kleine Anweisung, damit Alles richtig berechnet wird, oder muss man das jedes Mal extra festlegen?
Code:
if(Digits==3||Digits==5){
  D_ONO=10*D_ONO;
  D_CAO=10*D_CAO;}
Angehängte Dateien
Dateityp: mq4 LoShD_MNpm.mq4 (36,8 KB, 1x aufgerufen)
  #37 (permalink)  
Alt 27.01.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Ist anscheinend wirklich so, dass der EA irgendwie falsch mit NormalizeDouble umgeht. Anscheinend geht der MT4 richtig mit Double-Werten um, der EA scheint aber (in diesem Bsp.) von 5 digits nur 4 zu benutzen. Dann ist wohl klar, warum er oft nicht richtig arbeitet:Von den beiden letzten Nachkommastellen benutzt er anscheinend nur die Vorletzte.
Code:
05:18:40.121 LoShD_MNpm_PRINT AUDUSD,M5:Checked Last NeSel:-MN_NeSel=4997-NeSel_DONO=0.7732-OrderOpenPrice()=0.7737-D_ONO=25-Bid=0.7732-MN_FiSel=12-D_CAO=50-FiSel_DCAO=0.7732-Ask=0.7732
05:20:41.410 LoShD_MNpm_PRINT AUDUSD,M5: close #367786198 sell 0.01 AUDUSD at 0.77318 sl: 0.77691 tp: 0.77041 at price 0.77301
Weiß jetzt nicht, ob ich das richtig beobachtet habe, aber anscheinend gibts dieses Problem nur bei 3 und 5 Digits, und dann auch nur, wenn vor dem Komma 0 steht. Kann mich da aber irren.

Jedenfalls hoffe ich mal, dass es so funktioniert:
Code:
MI_DIG=MarketInfo(Symbol(),MODE_DIGITS);

MI_ASK=MarketInfo(Symbol(),MODE_ASK);
MI_BID=MarketInfo(Symbol(),MODE_BID);
Aber was, wenn er bei NormalizeDouble, unabhängig vom Symbol(), immer von 2 oder 4 Digits ausgeht? Dann müssen eigene Berechnungen mit NormalizeDouble irgendwie anders gehn.
Code:
FiSel_DONO=NormalizeDouble(OrderOpenPrice()-D_ONO*Point,Digits);

FiBuy_DONO=NormalizeDouble(OrderOpenPrice()+D_ONO*Point,Digits);

FiSel_DCAO=NormalizeDouble(OrderOpenPrice()-D_CAO*Point,Digits);

FiBuy_DCAO=NormalizeDouble(OrderOpenPrice()+D_CAO*Point,Digits);
Kann man mir das mal auf deutsch genau erklären?
Angehängte Dateien
Dateityp: mq4 LoShD_MNpm_PRINT.mq4 (41,9 KB, 2x aufgerufen)
Dateityp: txt LoSh_2021-01-27.txt (21,8 KB, 1x aufgerufen)
  #38 (permalink)  
Alt 29.01.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Hallo MA-EA,

ja da ist ein Bug in MT4, allerdings nur in der Print() Funktion.

Der Auftruf von NormalizeDouble() funktioniert und die jeweilige Double-Variable ist auch auf die entsprechende Ziffer normalisiert, nur wird in der Print()-Funktion anscheinend bei Doublewerten nochmals auf die letzten vierte Stellen nach dem Komma gekürzt.

So kannst du dir die Doublewerte richtig anzeigen lassen:

Code:
// mit 5 Stellen hinter dem Komma:
Print(DoubleToStr(FiBuy_DCAO,Digits));
// mit 8 Stellen hinter dem Komma:
Print(DoubleToStr(FiBuy_DCAO));
Dennoch zeigt der EA bei mir immer wieder den Fehler beim Aufrufen von Open/Close Order. Hier solltest du die Angabe des Preises von NULL gegen Ask/Bid (je nachdem welcher Ordertyp und ob es Open oder Close ist) austauschen.

Gruß
Timo
  #39 (permalink)  
Alt 01.02.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Dann scheint das mit

Code:
NormalizeDouble( xy * Point , Digits )
wohl richtig zu sein. Hoffe ich.

Ob man bei OrderSend() / OrderClose() beim Price Ask, Bid, NULL oder 5*3-100 einträgt, scheint egal zu sein. Manchmal macht das Ding seinen Job, manchmal nicht.

Im Anhang die neueste Version. Hat vorhin wieder manchmal nicht gemacht, was sie soll. Hab versucht, nen paar Sachen besser zu machen, aber keine Ahnung, was das Ding im Anhang anstellt oder nicht. Bin für jegliche Hinweise, Tipps, Anregungen, Kritiken, was auch immer, dankbar.
Code:
//=============================================================================================================
// E I N S T E L L U N G E N
//=============================================================================================================
extern string esMN="Magic Numbers";
extern int MN_FiSel=12;
extern int MN_FiBuy=34;
extern int MN_NeSel=56;
extern int MN_NeBuy=78;
//-----------------------------------------------------------------------------------------------------------*/
extern string esOOFT1="Open Orders";
extern string esOOFT2="from/till Hour";
extern string esOOFT3="(Server Time)";
extern int FromH=5;//  Vor 5 Uhr starten scheint sich nicht zu lohnen.
extern int TillH=15;// Zum Testen bis einschließlich 15 Uhr öffnen lassen.
//-----------------------------------------------------------------------------------------------------------*/
extern string esTF="TimeFrame";
input ENUM_TIMEFRAMES TF=15;// Zum Testen M15
//-----------------------------------------------------------------------------------------------------------*/
extern int Slippage=12345;
//-----------------------------------------------------------------------------------------------------------*/
extern int SL=375;// ?
//-----------------------------------------------------------------------------------------------------------*/
extern int TP=275;// ?
//-----------------------------------------------------------------------------------------------------------*/
extern string esIITCBSMS1="if IsTradeContexBusy()";
extern string esIITCBSMS2="sleep MS";
extern int slMS=40;// Zum Testen 40ms
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOONO1="Dist to OrderOpenPrice()";
extern string esDOONO2="open next Order";
extern int D_ONO=25;// Zum Testen 25
//-----------------------------------------------------------------------------------------------------------*/
extern string esDOCAO1="Dist to OrderOpenPrice()";
extern string esDOCAO2="close all Orders";
extern int D_CAO=50;// Zum Testen 50
//-----------------------------------------------------------------------------------------------------------*/
extern int OrdersNeed_Multi=2;// Zum Testen 2. 1-4?
//-----------------------------------------------------------------------------------------------------------*/
extern double Lots=0.01;
//=============================================================================================================
// G L O B A L E   D E K L A R A T I O N E N
//=============================================================================================================
bool
fiSH,fiLO,neSH,neLO,
OC
;
//-----------------------------------------------------------------------------------------------------------*/
double
SL_Sel,SL_Buy,TP_Sel,TP_Buy,MSL,
FiSel_DON_Sel,FiBuy_DON_Buy,

NeSel_DON_Sel,NeSel_DON_Buy,NeBuy_DON_Sel,NeBuy_DON_Buy,

FiSel_DCAO,FiBuy_DCAO
;
//-----------------------------------------------------------------------------------------------------------*/
int
MI_DIG,
TI_FiSel,TI_FiBuy,TI_NeSel,TI_NeBuy,
i,j,k,l,m,n,o,p,q,r,s,t,u,
Opened_Sel,Opened_Buy,
Need_Sel,Need_Buy
;
//=============================================================================================================
// I N I T
//=============================================================================================================
void OnInit(){ChartSetSymbolPeriod(0,NULL,TF);}
//=============================================================================================================
// E A   F U N K T I O N E N   S T A R T
//=============================================================================================================
void OnTick(){
//=============================================================================================================
// M A R K E T   I N F O
//=============================================================================================================

MI_DIG=MarketInfo(Symbol(),MODE_DIGITS);

//=============================================================================================================
// S T O P   L O S S
//=============================================================================================================
//SL auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(SL<1){
SL_Sel=0.0;
SL_Buy=0.0;}
if(SL>=1){
SL_Sel=NormalizeDouble(Bid+SL*Point,Digits);
SL_Buy=NormalizeDouble(Ask-SL*Point,Digits);}
//SL genauso groß wie Minstoplevels machen, wenn er kleiner ist:
MSL=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(SL_Sel<MSL)SL_Sel=MSL;
if(SL_Buy<MSL)SL_Buy=MSL;
//=============================================================================================================
// T A K E   P R O F I T
//=============================================================================================================
//TP auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(TP<1){
TP_Sel=0.0;
TP_Buy=0.0;}
if(TP>=1){
TP_Sel=NormalizeDouble(Bid-TP*Point,Digits);
TP_Buy=NormalizeDouble(Ask+TP*Point,Digits);}
//=============================================================================================================
// O R D E R   S E A R C H   1
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
//=============================================================================================================
// O P E N   F I R S T   S E L L / O P E N   F I R S T   B U Y
//=============================================================================================================
//Wenn gar keine Orders offen sind...
if(fiSH==false&&fiLO==false&&neSH==false&&neLO==false){
//...alle Zähler auf 0 setzen...
Opened_Sel=0;
Opened_Buy=0;
Need_Sel=0;
Need_Buy=0;
//...und wenn zur Zeit Orders geöffnet werden dürfen, FirstSel und FirstBuy öffnen.
if(Hour()>=FromH&&Hour()<=TillH){
if(IsTradeAllowed()==true)TI_FiSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_FiSel,Blue);
if(IsTradeContextBusy()==true)Sleep(slMS);
if(IsTradeAllowed()==true)TI_FiBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_FiBuy,Blue);
if(IsTradeContextBusy()==true)Sleep(slMS);}}// Gar keine Orders offen.
//=============================================================================================================
// O R D E R   S E A R C H   2
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(j=OrdersTotal()-1;j>=0;j--){
if(OrderSelect(j,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
//-----------------------------------------------------------------------------------------------------------*/
// Wenn FirstSel und FirstBuy offen sind...
if(fiSH==true&&fiLO==true){
//=============================================================================================================
//O P E N   N E X T   S E L   B Y   F I R S T   S E L
//=============================================================================================================
//...wenn noch kein NextSel offen ist...
  if(neSH==false){

//  ...FirstSel auswählen:
    if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){

//    Wenn FirstSel unter D_ONO ist... 
      FiSel_DON_Sel=NormalizeDouble(OrderOpenPrice()-D_ONO*Point,Digits);
      if(Bid<=FiSel_DON_Sel){

//      ...erste NextSels öffnen.
        for(k=OrdersNeed_Multi;k>=1;k--){
          if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,Blue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Sel++;
          Need_Sel=OrdersNeed_Multi*Opened_Sel;
          Need_Buy=OrdersNeed_Multi*Need_Sel;
  } } } } }// noch kein NextSel offen.
//=============================================================================================================
//O P E N   N E X T   B U Y   B Y   F I R S T   B U Y
//=============================================================================================================
//...wenn noch kein NextBuy offen ist...
  if(neLO==false){

//  FirstBuy auswählen:
    if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){

//    Wenn FirstBuy über D_ONO ist...
      FiBuy_DON_Buy=NormalizeDouble(OrderOpenPrice()+D_ONO*Point,Digits);
      if(Ask>=FiBuy_DON_Buy){

//      ...erste NextBuys öffnen.
        for(l=OrdersNeed_Multi;l>=1;l--){
          if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,Blue);
          if(IsTradeContextBusy()==true)Sleep(slMS);
          Opened_Buy++;
          Need_Buy=OrdersNeed_Multi*Opened_Buy;
          Need_Sel=OrdersNeed_Multi*Need_Buy;
  } } } } }// Noch kein NextBuy offen.
//-----------------------------------------------------------------------------------------------------------*/
}// FirstSel und FirstBuy offen nach Order Search 2
//=============================================================================================================
// O R D E R   S E A R C H   3
//=============================================================================================================
fiSH=false;
neSH=false;
fiLO=false;
neLO=false;
for(m=OrdersTotal()-1;m>=0;m--){
if(OrderSelect(m,SELECT_BY_POS)){
if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MN_FiSel)fiSH=true;
if(OrderMagicNumber()==MN_NeSel)neSH=true;
if(OrderMagicNumber()==MN_FiBuy)fiLO=true;
if(OrderMagicNumber()==MN_NeBuy)neLO=true;}}}
//Wenn FirstSel und FirstBuy offen sind...
if(fiSH==true&&fiLO==true){
//und NextSel und/oder NextBuy offen ist...
  if(neSH==true||neLO==true){
//=============================================================================================================
// S E L E C T   N E X T   S E L
//=============================================================================================================
//  ...letzten NextSel raus suchen:
    if(OrderSelect(TI_NeSel,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){
//=============================================================================================================
//    O P E N   M O R E   B U Y   B Y   N E X T   S E L
//=============================================================================================================
//    Wenn NextSel über NextBuy-D_ONO ist...
      NeSel_DON_Buy=NormalizeDouble(OrderOpenPrice()+D_ONO*Point,Digits);
      if(Ask>=NeSel_DON_Buy){// Ask oder Bid ?

//      ...FirstBuy auswählen:
        if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
        if(OrderSymbol()==Symbol()){

//        Wenn FirstBuy Gewinn-Dist nicht erreicht hat...
          FiBuy_DCAO=NormalizeDouble(OrderOpenPrice()+D_CAO*Point,Digits);
          if(Bid<FiBuy_DCAO){

//          ...weitere Buy-Orders by NextSel öffnen:
            for(p=Need_Buy;p>=1;p--){
              if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,Blue);
              if(IsTradeContextBusy()==true)Sleep(slMS);
              Opened_Buy++;
              Need_Buy=OrdersNeed_Multi*Opened_Buy;
              Need_Sel=OrdersNeed_Multi*Need_Buy;}
      } } } }// letzter NextSel über D_ONO (open more NextBuy)
//=============================================================================================================
//    O P E N   M O R E   S E L    B Y   N E X T  S E L
//=============================================================================================================
//    Wenn letzter NextSel unter D_ONO ist...
      NeSel_DON_Sel=NormalizeDouble(OrderOpenPrice()-D_ONO*Point,Digits);
      if(Bid<=NeSel_DON_Sel){

//      ...FirstSel raus suchen...
        if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
        if(OrderSymbol()==Symbol()){

//        Wenn FirstSel Gewinn-Dist nicht erreicht hat...
          FiSel_DCAO=NormalizeDouble(OrderOpenPrice()-D_CAO*Point,Digits);
          if(Ask>FiSel_DCAO){

//          ...weitere SelOrders öffnen.
            for(n=Need_Sel;n>=1;n--){
              if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,Blue);
              if(IsTradeContextBusy()==true)Sleep(slMS);
              Opened_Sel++;
              Need_Sel=OrdersNeed_Multi*Opened_Sel;
              Need_Buy=OrdersNeed_Multi*Need_Sel;
      } } } } }// FirstSel hat Gewinn-Dist nicht erreicht. Weitere Sel öffnen.
//=============================================================================================================
//        C L O S E   A L L   B Y   S E L
//=============================================================================================================//
//        Wenn FirstSel Gewinn-Dist doch erreicht hat alle Orders schließen.
          if(Ask<=FiSel_DCAO){
          for(o=OrdersTotal()-1;o>=0;o--){
          if(OrderSelect(o,SELECT_BY_POS)){
          if(OrderSymbol()==Symbol()){
          if(OrderMagicNumber()==MN_FiBuy
           ||OrderMagicNumber()==MN_NeBuy
           ||OrderMagicNumber()==MN_FiSel
           ||OrderMagicNumber()==MN_NeSel){
          if(IsTradeAllowed()==true)OC=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(slMS);} } } } }// FiSel hat CAO-Dist erreicht.
//-----------------------------------------------------------------------------------------------------------*/
    } }// Nach Order Search 3 NextSel ausgewählt.
//=============================================================================================================
//  S E L E C T   N E X T   B U Y
//=============================================================================================================
//  ...letzten NextBuy auswählen:
    if(OrderSelect(TI_NeBuy,SELECT_BY_TICKET)){
    if(OrderSymbol()==Symbol()){
//=============================================================================================================
//    O P E N   M O R E   S E L   B Y   L A S T   B U Y
//=============================================================================================================
//    Wenn letzter NextBuy unter D_ONO ist... 
      NeBuy_DON_Sel=NormalizeDouble(OrderOpenPrice()-D_ONO*Point,Digits);
      if(Bid<=NeBuy_DON_Sel){

//      ...FirstSel raus suchen...
        if(OrderSelect(TI_FiSel,SELECT_BY_TICKET)){
        if(OrderSymbol()==Symbol()){

//        Wenn FirstSel Gewinn-Dist nicht erreicht hat...
          FiSel_DCAO=NormalizeDouble(OrderOpenPrice()-D_CAO*Point,Digits);
          if(Ask>FiSel_DCAO){

//          ...weitere SelOrders öffnen.
            for(n=Need_Sel;n>=1;n--){
              if(IsTradeAllowed()==true)TI_NeSel=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_NeSel,Blue);
              if(IsTradeContextBusy()==true)Sleep(slMS);
              Opened_Sel++;
              Need_Sel=OrdersNeed_Multi*Opened_Sel;
              Need_Buy=OrdersNeed_Multi*Need_Sel;
      } } } } }// Nach OrderSearch 3 NextBuy unter Dist-ONO.
//=============================================================================================================
//    O P E N   M O R E   B U Y   B Y   L A S T   B U Y
//=============================================================================================================
//    Wenn letzter NextBuy über D_ONO ist... 
      NeBuy_DON_Buy=NormalizeDouble(OrderOpenPrice()+D_ONO*Point,Digits);
      if(Ask>=NeBuy_DON_Buy){

//      Prüfen, ob FirstBuy Gewinn-Dist erreicht hat:
        if(OrderSelect(TI_FiBuy,SELECT_BY_TICKET)){
        if(OrderSymbol()==Symbol()){

//        Wenn FirstBuy Gewinn-Dist nicht erreicht hat...
          FiBuy_DCAO=NormalizeDouble(OrderOpenPrice()+D_CAO*Point,Digits);
          if(Bid<FiBuy_DCAO){

//          ...weitere Buy-Orders öffnen:
            for(p=Need_Buy;p>=1;p--){
              if(IsTradeAllowed()==true)TI_NeBuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_NeBuy,Blue);
              if(IsTradeContextBusy()==true)Sleep(slMS);
              Opened_Buy++;
              Need_Buy=OrdersNeed_Multi*Opened_Buy;
              Need_Sel=OrdersNeed_Multi*Need_Buy;
      } } } } }// FirstBuy hat Gewinn-Dist nicht erreicht.
//=============================================================================================================
//        C L O S E   A L L   B Y   F I R S T   B U Y
//=============================================================================================================
//        Wenn FirstBuy Gewinn-Dist doch erreicht hat alle Orders schließen.
          if(Bid>=FiBuy_DCAO){
          for(q=OrdersTotal()-1;q>=0;q--){
          if(OrderSelect(q,SELECT_BY_POS)){
          if(OrderSymbol()==Symbol()){
          if(OrderMagicNumber()==MN_FiSel
           ||OrderMagicNumber()==MN_NeSel
           ||OrderMagicNumber()==MN_FiBuy
           ||OrderMagicNumber()==MN_NeBuy){
          if(IsTradeAllowed()==true)OC=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(slMS);} } } } }// FirstBuy hat Gewinn-Dist erreicht
//-----------------------------------------------------------------------------------------------------------*/
    } }// Nach Order Search 3 NextBuy ausgewählt.
//-----------------------------------------------------------------------------------------------------------*/
} }// Nach Order Search 3 NextSel und/oder NextBuy offen.
//=============================================================================================================
// E A   F U N K T I O N E N   B E E N D E N
//=============================================================================================================
}// void OnTick()
Angehängte Dateien
Dateityp: mq4 LoShD_Ti_v2.mq4 (40,8 KB, 1x aufgerufen)
  #40 (permalink)  
Alt 03.02.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Die Strategie ansich scheint funktionieren zu können. Nur der EA macht oft nicht, was er soll. So dass ich die ganzen Orders eben selber schließen durfte.
Code:
2021.02.03
Gross Profit:107.19Gross Loss:1.90Total Net Profit:105.29
Total Trades:250Short Positions (won %):3 (0.00%)Long Positions (won %):247 (100.00%)
Profit Trades (% of total):247 (98.80%)Loss trades (% of total):3 (1.20%)
Angehängte Dateien
Dateityp: mq4 LoShD_Ti_v2.mq4 (40,9 KB, 2x aufgerufen)
Thema geschlossen

Lesezeichen


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:43 Uhr.





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