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

Expert-Advisors Expert-Advisors für Metatrader 4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4554
Beiträge: 41310
Benutzer: 6.946
Aktive Benutzer: 217
Links: 82
Wir begrüßen unseren neuesten Benutzer: cavaliereg
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 12 Minuten
- cavaliereg
vor einem Tag
- majid_z
vor einem Tag
- Jeatcomput...
vor 2 Tagen
- Herrfroehl...
vor 2 Tagen
- dberkovi

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 105
Gesamt: 106
Team: 0
Team:  
Benutzer:  cavaliereg
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 118
Martin befindet sich auf einem aufstrebenden Ast
Standard buy sell ea

hallo vielleicht könnt ihr mir ja helfen
und zwar suche ich ein simplen ea der gleichzeitig eine buy und sell positon öffnet
und wen eine von beiden geschlossen wird soll er sofort wider eine buy und sell position öfnen

irgendwie hab ich noch nichs in der richtung gefunden was funktioniert

danke

Gruss Martin
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.025
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Moin.

Hab son Gerät. Hab es bestimmt bei 4 Forex-Brokern ausprobiert, aber Alle scheinen ne Sperre drin zu haben, dass man oft ne Weile warten muss, bis man die nächste Order öffnen kann. Manchmal öffnet er nach dem Schließen gleich die Nächste, aber oft dauerts ne Weile. Weißt Du nen Broker, wo man wirklich ohne irgendwelche Einschränkungen Buy- und Sell-Orders öffnen und schließen kann, wie man will?
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Benutzerbild von Indikator-Trading
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 127
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Da muss ich leider mal wieder intervenieren. MA-EA hat mit Garantie keinen EA der richtig funktioniert.

Natürlich kann man in sehr kurzem zeitlichen Abstand eine BuyOrder und eine SellOrder in den Markt legen (wenn dein Broker Heding unterstützt), alles andere sind FakeNews von MA-EA.

Du wirst aber nicht exakt zur gleichen Millisekunde ausgeführt werden können, da die Leitung ja durch das Senden von einer Order Busy ist.

Mal davon abgesehen bist du Flat (nicht investiert), sobald zu zwei Orders der gleichen Größe gleichzeitig in den Markt legst. Dann bezahlst du halt 2 mal Spread / Kommission + schlechte Ausführung (Slippage).
Wie du damit einen Blumentopf gewinnen willst ist mir fraglich.

Alleine das MA-EA so was schon intensiver probiert hat ist ein Garant dafür, dass das eine ganz beschissene Idee ist.

"Beschissene Ideen zu haben" ist genau MA-EAs ding!
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.025
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

@ Martin

Lass den Indikator-Trading meckern, dem ist nicht klar, dass so ein System funktionieren k a n n , wenns richtig gemacht wird. Leider funktionierts aber eben deswegen nicht, weil durchgehendes Hedgen/Scalpen anscheinend von allen(?) MT4-Brokern eingeschränkt wird.

Falls wie gesagt Jemand nen Forex-Broker kennt, bei dem man ohne jegliche Unterbrechung durchgehend hedgen und scalpen kann, dann bin ich ganz Ohr.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 211
RetepM befindet sich auf einem aufstrebenden Ast
Standard

Hi, wir alle wissen, dass MA-EA, wie @Traderdoc so schön schrieb, „beratungsresistent“ ist. In diesem Forum scheint es mittlerweile auch so zu sein, dass anscheinend nur noch neue Mitglieder, wenn überhaupt auf ihn reagieren...
Trotzdem glaube ich, wir sollten ihn in Ruhe lassen, denn egal was man tut, er ist beratungsresistent, ihn interessieren weder freundliche Korrekturen, noch denkt er über massivste Zurechtweisungen nach. Wir sollten doch alle froh sein: MA-EA findet immer wieder Fehler, entweder im MQ4 oder wie in diesem Fall bei allen ihm bekannten Brokern. Eigentlich müsste seine Gefolgschaft in der MQ4-Community sich zu 100.000den rechnen...
Also: Cool bleiben und lasst ihn einfach machen :-)
Grüße
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 441
AVT befindet sich auf einem aufstrebenden Ast
Standard

Die Idee dahinter ist das, was angeblich Profis machen:
eine Position zu hedgen. Das funktioniert folgendermaßen:

1. ich öffne sowohl eine Long als auch eine Short Order
2. läuft der Kurs runter,
a. bin ich mit der Short Order im Plus
b. und mit der Long Order im Minus
3. sobald die Short Order am Ziel ist (was auch immer das ist)
a. wird die Short Order geschlossen (im Plus)
b. und die Long Order beim Rücklauf beobachtet
c. sobald der Rücklauf am Ende ist (wie auch immer man das erkennt)
d. wird die Long Order (noch im Minus) geschlossen
Code:
--- Long + Short
   |
   |
   |      | close Long (-)
   | Korr |
   |      | 
   |      | 
   | Kurs | close Short (+)
Die Kalkulation dahinter geht davon aus, daß das Plus aus der Short Order größer ist als das Minus der Long Order. Soweit die Theorie.

Was ich allerdings für totalen Schwachsinn halte, ist eine Order (egal in welche Richtung) im Gewinn zu schließen, um sofort danach wieder eine Order in dieselbe Richtung aufzumachen - das kostet unnötiges Risiko; für sowas sind Teilschließungen.
AVT
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 118
Martin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Moin.

Hab son Gerät. Hab es bestimmt bei 4 Forex-Brokern ausprobiert, aber Alle scheinen ne Sperre drin zu haben, dass man oft ne Weile warten muss, bis man die nächste Order öffnen kann. Manchmal öffnet er nach dem Schließen gleich die Nächste, aber oft dauerts ne Weile. Weißt Du nen Broker, wo man wirklich ohne irgendwelche Einschränkungen Buy- und Sell-Orders öffnen und schließen kann, wie man will?
Hallo danke für deine Rückmeldung
könnest du mir den EA Bitte mal schicken dann würde ich das gerne mal testen
von welchen Zeitraum reden wir den das die neuen Positionen nach dem schließen wider geöffnet werden ?
Mit Zitat antworten
  #8 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.025
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

EA ist im Anhang.

Hab ich mir heut noch mal kurz angeschaut. Scheint gar nicht so zu sein, dass er nur wegen dem Broker "Pause" macht. Sondern dass da grundsätzlich was nicht richtig ist. Liegt vielleicht nur am Drecks-MT4, bei dem irgendwie gar nichts funktioniert, wie es soll. Die Entwickler von dem Schrott sollte man verklagen. Da funktionieren die einfachsten Sachen nicht.

Wie auch immer, mal funktioniert der EA, mal nicht. Als ich heute immer wieder den EA in die Chart-Fenster gezogen habe, da hat er dann Orders geöffnet, wie er soll. Aber irgendwie nur dann. Vorher hat er irgendwie 20 Min lang gar nix gemacht. Da muss irgendwas Grundsätzliches grundlegend grundverkehrt sein.

Meine letzte Hoffnung ist, dass es irgendwie an property strict liegt, dass ich normalerweise aus habe. Aber wer weiß, was damit wieder für Probleme kommen.

Hier noch mal der komplette Code. Wer den Fehler findet, wegen dem das Ding mal Orders öffnet wie es soll und mal nicht, kann ihn mir mit allergrößtem Vergnügen in meine dumme Fresse drücken. Viel Spaß.

Code:
/*=============================================================================================================
// N O T I Z E N   U N D   I N F O S
//=============================================================================================================

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


Öffnen der Orders dauert allgemein etwas lange.

Lag vielleicht an Dist? Mit SL und TP getestet.
Auch mit SL und TP dauert das Öffnen neuer Orders
teilweise sehr lange.


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


Der EA ist nicht profitabel,
weil mit immer höheren Lots
auch immer höhere Spread-Kosten
entstehen. Pro 0.01 Lot entstehen
bis zu ungefähr 15 Pips Spread.
Diese müssen natürlich wieder
rein geholt werden.


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


Für das Schließen aller Orders
zur eingestellten Zeit wird
extra Bereich am Ende des EA genutzt.


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





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



//=============================================================================================================
// P R O P E R T Y
//============================================================================================================*/
// #property strict
// #property strict sorgt anscheinend dafür, dass Kommentare im Konfig-Fenster im MT4 sichtbar sind.

#property copyright"LoSh_AlwInv_Dist_v4"
#property copyright"daniel-rudloff@web.de"
//=============================================================================================================
// B E S C H R E I B U N G
//=============================================================================================================
extern string TOY="true = on / yes";
extern string FON="false = off / no";
//=============================================================================================================
// E I N S T E L L U N G E N
//=============================================================================================================

//-----------------------------------------------------------------------------------------------------------*/

extern string esMN="Magic Numbers";
extern int MN_Sel=12;
extern int MN_Buy=34;

//-----------------------------------------------------------------------------------------------------------*/

extern string esMOBSC1="Max Orders";
extern string esMOBSC2="Sell / Buy";
extern string esMOBSC3="concurrently";

extern int MOBSC_Def=0; // Default Wert

extern int MOBSC_Sel=0; // Start-Werte.
extern int MOBSC_Buy=0; // Werden gleich nach OrderSend mit "++" erhöht.

extern int MOBSC_Max_Sel=2; // 2 bis
extern int MOBSC_Max_Buy=2; // 3 ?

//-----------------------------------------------------------------------------------------------------------*/

extern string OOO1="Open Orders";
extern string OOO2="from/till";
extern string OOO3="(Server Time)";

extern int Open_From_Hour=5; // Zum Testen ab 5 Uhr Orders öffnen lassen.
extern int Open_From_Min=0;

extern int Open_Till_Hour=14; // Zum Testen bis kurz vor 15 Uhr
extern int Open_Till_Min=56;  // Orders öffnen lassen.

//-----------------------------------------------------------------------------------------------------------*/

extern string CAOTOC1="Close all Orders after";
extern string CAOTOC2="(Server Time)";

extern bool Close_all_Orders_after=false; // Zum Testen aus.

extern int Close_Hour=17;
extern int Close_Min=27;

//-----------------------------------------------------------------------------------------------------------*/

extern int Slippage=99999999;

//-----------------------------------------------------------------------------------------------------------*/


extern double Def_Lots=0.01;

extern double LotsSel=0.01;
extern double LotsBuy=0.01;

extern string esLPOCP1="Lots Buy / Lots Sell";
extern string esLPOCP2="+ LotsPlus";
extern string esLPOCP3="if Order close";
extern string esLPOCP4="with Profit";

extern double LotsPlus=0.01; // Zum Testen 0.02 ? Erst mal nicht.


//-----------------------------------------------------------------------------------------------------------*/

extern int SL=2400; // 2400 testen

//-----------------------------------------------------------------------------------------------------------*/

extern int TP=2800; // Zum Testen 2800

//-----------------------------------------------------------------------------------------------------------*/

extern string esIITCBSMS1="if IsTradeContexBusy()";
extern string esIITCBSMS2="sleep Milli Seconds";

extern int Sl_MS=15; // Zum Testen 15 MS

//-----------------------------------------------------------------------------------------------------------*/

extern string esDOPtAB1="Distance to";
extern string esDOPtAB2="Order Open Price";
extern string esDOPtAB3="close Win-Order.";
extern string esDOPtAB4="If close with Profit";
extern string esDOPtAB5="Lots Buy + Lots Sel /";
extern string esDOPtAB6="Lots Sel + Lots Buy.";

extern int Dist = 75; // Zum Testen 75. Weniger als 50 ist wahrscheinlich nicht ausreichend?

//-----------------------------------------------------------------------------------------------------------*/

//=============================================================================================================
// G L O B A L E   D E K L A R A T I O N E N
//=============================================================================================================



int

i
,
j
,
k
,
l
,
m
,
n


;



//=============================================================================================================
// I N I T / D E I N I T ?
//=============================================================================================================

int OnInit(){}


/*
int deinit(){}
*/

//=============================================================================================================
// E A   F U N K T I O N E N   S T A R T
//=============================================================================================================int 
void OnTick(){
//=============================================================================================================
// L O T S   ?
//=============================================================================================================


double Min_L=MarketInfo(Symbol(),MODE_MINLOT);
double Max_L=MarketInfo(Symbol(),MODE_MAXLOT);

if(LotsSel<Min_L)LotsSel=Min_L;
if(LotsBuy<Min_L)LotsBuy=Min_L;

if(LotsSel>=Max_L){
  LotsSel=Max_L;
  LotsPlus=0.0;}
  
if(LotsBuy>=Max_L){
  LotsBuy=Max_L;
  LotsPlus=0.0;}


//=============================================================================================================
// S T O P   L O S S
//=============================================================================================================


//SL auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(SL<1){
  double SL_Sel=0.0;
  double SL_Buy=0.0;}

  else{
    SL_Sel=NormalizeDouble(Bid+SL*_Point,_Digits);
    SL_Buy=NormalizeDouble(Ask-SL*_Point,_Digits);}

//SL genauso groß wie Minstoplevels machen, wenn er kleiner ist:
double 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){
  double TP_Sel=0.0;
  double TP_Buy=0.0;}

  else{
    TP_Sel=NormalizeDouble(Bid-TP*_Point,_Digits);
    TP_Buy=NormalizeDouble(Ask+TP*_Point,_Digits);}


//=============================================================================================================
// C L O S E   D I S T A N C E   B E R E C H N U N G
//=============================================================================================================



double CLsel_D = NormalizeDouble( Ask + Dist *_Point,_Digits);


double CLbuy_D = NormalizeDouble( Bid - Dist *_Point,_Digits);



//=============================================================================================================
// O P E N   O R D E R S
//=============================================================================================================


if(Hour()>=Open_From_Hour&&Minute()>=Open_From_Min){


  if((Hour()<=Open_Till_Hour&&Minute()<=Open_Till_Min)|| ( MOBSC_Sel>MOBSC_Def && Hour()>=Open_Till_Hour && Minute()>=Open_Till_Min ) || ( MOBSC_Buy>MOBSC_Def && Hour()>=Open_Till_Hour&&Minute()>=Open_Till_Min ) ){


// <= oder < ?
// < , sonst wird auch geöffnet, wenn Max bereits erreicht ist.
    if( MOBSC_Sel<MOBSC_Max_Sel && MOBSC_Buy<MOBSC_Max_Buy ){


//////////////////////////////////////////////////////////////////////////////////////////////////////////////
      bool SH=false;
      bool LO=false;
      for(i=OrdersTotal()-1;i>=0;i--){
        if(OrderSelect(i,SELECT_BY_POS)){
          if(OrderSymbol()==Symbol()){
            if(OrderMagicNumber()==MN_Sel)SH=true;
            if(OrderMagicNumber()==MN_Buy)LO=true;}}}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////


      if(SH==false){
        if(IsTradeAllowed()==true)OrderSend(Symbol(),OP_SELL,LotsSel,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_Sel,Blue);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);
        MOBSC_Sel++;}


      if(LO==false){
        if(IsTradeAllowed()==true)OrderSend(Symbol(),OP_BUY,LotsBuy,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_Buy,Blue);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);
        MOBSC_Buy++;}

} } }


//=============================================================================================================
// O R D E R   C L O S E   B Y   D I S T   ?
//=============================================================================================================


for(j=OrdersTotal()-1;j>=0;j--){
  if(OrderSelect(j,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_Sel){
        if( CLsel_D < OrderOpenPrice() ){
          if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(Sl_MS);
          LotsSel = OrderLots() + LotsPlus;


          if(MOBSC_Sel>=MOBSC_Max_Sel){
            for(k=OrdersTotal()-1;k>=0;k--){
              if(OrderSelect(k,SELECT_BY_POS)){
                if(OrderSymbol()==Symbol()){
                  if(OrderMagicNumber()==MN_Buy){
                    if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
                    if(IsTradeContextBusy()==true)Sleep(Sl_MS);
                    MOBSC_Sel=MOBSC_Def;
                    MOBSC_Buy=MOBSC_Def;
                    LotsSel=Def_Lots;
                    LotsBuy=Def_Lots;

} } } } } } } } } }


//////////////////////////////////////////////////////////////////////////////////////////////////////////////


//Die eigentliche Buy-Order auswählen:
for(l=OrdersTotal()-1;l>=0;l--){
  if(OrderSelect(l,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_Buy){
        if( CLbuy_D > OrderOpenPrice() ){
          if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(Sl_MS);
          LotsBuy = OrderLots() + LotsPlus;


          if(MOBSC_Buy>=MOBSC_Max_Buy){
            for(m=OrdersTotal()-1;m>=0;m--){
              if(OrderSelect(m,SELECT_BY_POS)){
                if(OrderSymbol()==Symbol()){
                  if(OrderMagicNumber()==MN_Sel){
                    if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
                    if(IsTradeContextBusy()==true)Sleep(Sl_MS);
                    MOBSC_Buy=MOBSC_Def;
                    MOBSC_Sel=MOBSC_Def;
                    LotsBuy=Def_Lots;
                    LotsSel=Def_Lots;
                    
} } } } } } } } } }


//=============================================================================================================
// C L O S E   A L L   O R D E R S   A F T E R   ( S E R V E R   T I M E )
//=============================================================================================================

if(Close_all_Orders_after==true){
  if(Hour()>=Close_Hour&&Minute()>=Close_Min){

    for(n=OrdersTotal()-1;n>=0;n--){
      if(OrderSelect(n,SELECT_BY_POS)){
        if(OrderSymbol()==Symbol()){

          if(OrderMagicNumber()==MN_Sel){
            if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
            if(IsTradeContextBusy()==true)Sleep(Sl_MS);}

          if(OrderMagicNumber()==MN_Buy){
            if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
            if(IsTradeContextBusy()==true)Sleep(Sl_MS);}

} } }

} }


//=============================================================================================================
// E A   F U N K T I O N E N   B E E N D E N
//=============================================================================================================
}
Angehängte Dateien
Dateityp: ex4 LoSh_AlwInv_Dist_v4.ex4 (21,9 KB, 1x aufgerufen)
Dateityp: mq4 LoSh_AlwInv_Dist_v4.mq4 (27,2 KB, 3x aufgerufen)
Mit Zitat antworten
  #9 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 118
Martin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
EA ist im Anhang.

Hab ich mir heut noch mal kurz angeschaut. Scheint gar nicht so zu sein, dass er nur wegen dem Broker "Pause" macht. Sondern dass da grundsätzlich was nicht richtig ist. Liegt vielleicht nur am Drecks-MT4, bei dem irgendwie gar nichts funktioniert, wie es soll. Die Entwickler von dem Schrott sollte man verklagen. Da funktionieren die einfachsten Sachen nicht.

Wie auch immer, mal funktioniert der EA, mal nicht. Als ich heute immer wieder den EA in die Chart-Fenster gezogen habe, da hat er dann Orders geöffnet, wie er soll. Aber irgendwie nur dann. Vorher hat er irgendwie 20 Min lang gar nix gemacht. Da muss irgendwas Grundsätzliches grundlegend grundverkehrt sein.

Meine letzte Hoffnung ist, dass es irgendwie an property strict liegt, dass ich normalerweise aus habe. Aber wer weiß, was damit wieder für Probleme kommen.

Hier noch mal der komplette Code. Wer den Fehler findet, wegen dem das Ding mal Orders öffnet wie es soll und mal nicht, kann ihn mir mit allergrößtem Vergnügen in meine dumme Fresse drücken. Viel Spaß.

Code:
/*=============================================================================================================
// N O T I Z E N   U N D   I N F O S
//=============================================================================================================

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


Öffnen der Orders dauert allgemein etwas lange.

Lag vielleicht an Dist? Mit SL und TP getestet.
Auch mit SL und TP dauert das Öffnen neuer Orders
teilweise sehr lange.


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


Der EA ist nicht profitabel,
weil mit immer höheren Lots
auch immer höhere Spread-Kosten
entstehen. Pro 0.01 Lot entstehen
bis zu ungefähr 15 Pips Spread.
Diese müssen natürlich wieder
rein geholt werden.


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


Für das Schließen aller Orders
zur eingestellten Zeit wird
extra Bereich am Ende des EA genutzt.


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





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



//=============================================================================================================
// P R O P E R T Y
//============================================================================================================*/
// #property strict
// #property strict sorgt anscheinend dafür, dass Kommentare im Konfig-Fenster im MT4 sichtbar sind.

#property copyright"LoSh_AlwInv_Dist_v4"
#property copyright"daniel-rudloff@web.de"
//=============================================================================================================
// B E S C H R E I B U N G
//=============================================================================================================
extern string TOY="true = on / yes";
extern string FON="false = off / no";
//=============================================================================================================
// E I N S T E L L U N G E N
//=============================================================================================================

//-----------------------------------------------------------------------------------------------------------*/

extern string esMN="Magic Numbers";
extern int MN_Sel=12;
extern int MN_Buy=34;

//-----------------------------------------------------------------------------------------------------------*/

extern string esMOBSC1="Max Orders";
extern string esMOBSC2="Sell / Buy";
extern string esMOBSC3="concurrently";

extern int MOBSC_Def=0; // Default Wert

extern int MOBSC_Sel=0; // Start-Werte.
extern int MOBSC_Buy=0; // Werden gleich nach OrderSend mit "++" erhöht.

extern int MOBSC_Max_Sel=2; // 2 bis
extern int MOBSC_Max_Buy=2; // 3 ?

//-----------------------------------------------------------------------------------------------------------*/

extern string OOO1="Open Orders";
extern string OOO2="from/till";
extern string OOO3="(Server Time)";

extern int Open_From_Hour=5; // Zum Testen ab 5 Uhr Orders öffnen lassen.
extern int Open_From_Min=0;

extern int Open_Till_Hour=14; // Zum Testen bis kurz vor 15 Uhr
extern int Open_Till_Min=56;  // Orders öffnen lassen.

//-----------------------------------------------------------------------------------------------------------*/

extern string CAOTOC1="Close all Orders after";
extern string CAOTOC2="(Server Time)";

extern bool Close_all_Orders_after=false; // Zum Testen aus.

extern int Close_Hour=17;
extern int Close_Min=27;

//-----------------------------------------------------------------------------------------------------------*/

extern int Slippage=99999999;

//-----------------------------------------------------------------------------------------------------------*/


extern double Def_Lots=0.01;

extern double LotsSel=0.01;
extern double LotsBuy=0.01;

extern string esLPOCP1="Lots Buy / Lots Sell";
extern string esLPOCP2="+ LotsPlus";
extern string esLPOCP3="if Order close";
extern string esLPOCP4="with Profit";

extern double LotsPlus=0.01; // Zum Testen 0.02 ? Erst mal nicht.


//-----------------------------------------------------------------------------------------------------------*/

extern int SL=2400; // 2400 testen

//-----------------------------------------------------------------------------------------------------------*/

extern int TP=2800; // Zum Testen 2800

//-----------------------------------------------------------------------------------------------------------*/

extern string esIITCBSMS1="if IsTradeContexBusy()";
extern string esIITCBSMS2="sleep Milli Seconds";

extern int Sl_MS=15; // Zum Testen 15 MS

//-----------------------------------------------------------------------------------------------------------*/

extern string esDOPtAB1="Distance to";
extern string esDOPtAB2="Order Open Price";
extern string esDOPtAB3="close Win-Order.";
extern string esDOPtAB4="If close with Profit";
extern string esDOPtAB5="Lots Buy + Lots Sel /";
extern string esDOPtAB6="Lots Sel + Lots Buy.";

extern int Dist = 75; // Zum Testen 75. Weniger als 50 ist wahrscheinlich nicht ausreichend?

//-----------------------------------------------------------------------------------------------------------*/

//=============================================================================================================
// G L O B A L E   D E K L A R A T I O N E N
//=============================================================================================================



int

i
,
j
,
k
,
l
,
m
,
n


;



//=============================================================================================================
// I N I T / D E I N I T ?
//=============================================================================================================

int OnInit(){}


/*
int deinit(){}
*/

//=============================================================================================================
// E A   F U N K T I O N E N   S T A R T
//=============================================================================================================int 
void OnTick(){
//=============================================================================================================
// L O T S   ?
//=============================================================================================================


double Min_L=MarketInfo(Symbol(),MODE_MINLOT);
double Max_L=MarketInfo(Symbol(),MODE_MAXLOT);

if(LotsSel<Min_L)LotsSel=Min_L;
if(LotsBuy<Min_L)LotsBuy=Min_L;

if(LotsSel>=Max_L){
  LotsSel=Max_L;
  LotsPlus=0.0;}
  
if(LotsBuy>=Max_L){
  LotsBuy=Max_L;
  LotsPlus=0.0;}


//=============================================================================================================
// S T O P   L O S S
//=============================================================================================================


//SL auf 0 stellen, wenn oben <1,
//um irgendwelche Missverständnisse zu vermeiden.
if(SL<1){
  double SL_Sel=0.0;
  double SL_Buy=0.0;}

  else{
    SL_Sel=NormalizeDouble(Bid+SL*_Point,_Digits);
    SL_Buy=NormalizeDouble(Ask-SL*_Point,_Digits);}

//SL genauso groß wie Minstoplevels machen, wenn er kleiner ist:
double 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){
  double TP_Sel=0.0;
  double TP_Buy=0.0;}

  else{
    TP_Sel=NormalizeDouble(Bid-TP*_Point,_Digits);
    TP_Buy=NormalizeDouble(Ask+TP*_Point,_Digits);}


//=============================================================================================================
// C L O S E   D I S T A N C E   B E R E C H N U N G
//=============================================================================================================



double CLsel_D = NormalizeDouble( Ask + Dist *_Point,_Digits);


double CLbuy_D = NormalizeDouble( Bid - Dist *_Point,_Digits);



//=============================================================================================================
// O P E N   O R D E R S
//=============================================================================================================


if(Hour()>=Open_From_Hour&&Minute()>=Open_From_Min){


  if((Hour()<=Open_Till_Hour&&Minute()<=Open_Till_Min)|| ( MOBSC_Sel>MOBSC_Def && Hour()>=Open_Till_Hour && Minute()>=Open_Till_Min ) || ( MOBSC_Buy>MOBSC_Def && Hour()>=Open_Till_Hour&&Minute()>=Open_Till_Min ) ){


// <= oder < ?
// < , sonst wird auch geöffnet, wenn Max bereits erreicht ist.
    if( MOBSC_Sel<MOBSC_Max_Sel && MOBSC_Buy<MOBSC_Max_Buy ){


//////////////////////////////////////////////////////////////////////////////////////////////////////////////
      bool SH=false;
      bool LO=false;
      for(i=OrdersTotal()-1;i>=0;i--){
        if(OrderSelect(i,SELECT_BY_POS)){
          if(OrderSymbol()==Symbol()){
            if(OrderMagicNumber()==MN_Sel)SH=true;
            if(OrderMagicNumber()==MN_Buy)LO=true;}}}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////


      if(SH==false){
        if(IsTradeAllowed()==true)OrderSend(Symbol(),OP_SELL,LotsSel,Bid,Slippage,SL_Sel,TP_Sel,NULL,MN_Sel,Blue);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);
        MOBSC_Sel++;}


      if(LO==false){
        if(IsTradeAllowed()==true)OrderSend(Symbol(),OP_BUY,LotsBuy,Ask,Slippage,SL_Buy,TP_Buy,NULL,MN_Buy,Blue);
        if(IsTradeContextBusy()==true)Sleep(Sl_MS);
        MOBSC_Buy++;}

} } }


//=============================================================================================================
// O R D E R   C L O S E   B Y   D I S T   ?
//=============================================================================================================


for(j=OrdersTotal()-1;j>=0;j--){
  if(OrderSelect(j,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_Sel){
        if( CLsel_D < OrderOpenPrice() ){
          if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(Sl_MS);
          LotsSel = OrderLots() + LotsPlus;


          if(MOBSC_Sel>=MOBSC_Max_Sel){
            for(k=OrdersTotal()-1;k>=0;k--){
              if(OrderSelect(k,SELECT_BY_POS)){
                if(OrderSymbol()==Symbol()){
                  if(OrderMagicNumber()==MN_Buy){
                    if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
                    if(IsTradeContextBusy()==true)Sleep(Sl_MS);
                    MOBSC_Sel=MOBSC_Def;
                    MOBSC_Buy=MOBSC_Def;
                    LotsSel=Def_Lots;
                    LotsBuy=Def_Lots;

} } } } } } } } } }


//////////////////////////////////////////////////////////////////////////////////////////////////////////////


//Die eigentliche Buy-Order auswählen:
for(l=OrdersTotal()-1;l>=0;l--){
  if(OrderSelect(l,SELECT_BY_POS)){
    if(OrderSymbol()==Symbol()){
      if(OrderMagicNumber()==MN_Buy){
        if( CLbuy_D > OrderOpenPrice() ){
          if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
          if(IsTradeContextBusy()==true)Sleep(Sl_MS);
          LotsBuy = OrderLots() + LotsPlus;


          if(MOBSC_Buy>=MOBSC_Max_Buy){
            for(m=OrdersTotal()-1;m>=0;m--){
              if(OrderSelect(m,SELECT_BY_POS)){
                if(OrderSymbol()==Symbol()){
                  if(OrderMagicNumber()==MN_Sel){
                    if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
                    if(IsTradeContextBusy()==true)Sleep(Sl_MS);
                    MOBSC_Buy=MOBSC_Def;
                    MOBSC_Sel=MOBSC_Def;
                    LotsBuy=Def_Lots;
                    LotsSel=Def_Lots;
                    
} } } } } } } } } }


//=============================================================================================================
// C L O S E   A L L   O R D E R S   A F T E R   ( S E R V E R   T I M E )
//=============================================================================================================

if(Close_all_Orders_after==true){
  if(Hour()>=Close_Hour&&Minute()>=Close_Min){

    for(n=OrdersTotal()-1;n>=0;n--){
      if(OrderSelect(n,SELECT_BY_POS)){
        if(OrderSymbol()==Symbol()){

          if(OrderMagicNumber()==MN_Sel){
            if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
            if(IsTradeContextBusy()==true)Sleep(Sl_MS);}

          if(OrderMagicNumber()==MN_Buy){
            if(IsTradeAllowed()==true)OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
            if(IsTradeContextBusy()==true)Sleep(Sl_MS);}

} } }

} }


//=============================================================================================================
// E A   F U N K T I O N E N   B E E N D E N
//=============================================================================================================
}
er läuft zwar macht aber halt nicht das was ich suche vondemher bringt mir der nix
Mit Zitat antworten
  #10 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.025
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Was genau suchst Du denn? Wenn Du nach dem Schließen einer Order einfach nur ne Neue öffnen willst, bringt das nix. Der Spread und sonstige Spesen kosten mehr, als man auf dem Weg je wieder reinholen kann.

Im Anhang mal ne schnell überarbeitete Version. Hab ich nur kurz überflogen und noch nie getestet!
Angehängte Dateien
Dateityp: mq4 LoSh_AlwInv_Dist_v4.mq4 (27,5 KB, 4x aufgerufen)
Mit Zitat antworten
Antwort

Lesezeichen

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 12:58 Uhr.





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