Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 356

 
Ich habe versucht, die Parameter MA1_Shift=1 für beide Muwings zu ändern. Es scheint zu helfen. Ich werde es gleich ausprobieren.
 
okidoki543:
Danke, aber ich hätte gerne eine genaue Lösung. Damit wird der aktuelle Balken nicht berücksichtigt, sondern nur die vorherigen Balken.

Um eine exakte Lösung zu erhalten, brauchen Sie Ihren Code, von dem Sie eine exakte Lösung erhalten wollen. Aber Sie haben den Code nicht. Sie haben also auch keine Lösung...
 
всokidoki543:
Danke, aber ich hätte gerne eine genaue Lösung. Damit wird der aktuelle Balken nicht berücksichtigt, sondern nur die vorherigen Balken.


Verdammt, ich habe mich in den Code von jemand anderem eingegraben, um wieder einmal mit einem Blick zu versuchen, dieses Stück zu ändern. In diesem Fall sollte wahrscheinlich PRICE_CLOSE oder 0 sein...

   MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1);    // Текущее    значение 1-й МА
   MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 2);    // Предыдущее значение 1-й МА
   MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1);    // Текущее    значение 2-й МА
   MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 2);    // Предыдущее значение 2-й МА
 

Hier ist der Code, wobei die Verschiebungen von 0 auf 1 geändert wurden. Wird das helfen?

//============================================================================================
//
//
//
//
//
//============================================================================================
inttern MA1_Period=7; // 1. MA-Periode
extern int intMA2_Period=13; // Periode des 2. MA
extern int MA1_Method=1; // MA1 Berechnungsmethode (SMA=0,EMA=1,SMMA=2,LWMA=3)
extern int MA2_Method=1; // MA2 Berechnungsmethode (SMA=0,EMA=1,SMMA=2,LWMA=3)
extern int MA1_Price=0; // MA1-Preis-Berechnungsmethode
extern int MA2_Price=0; // MA2-Preis-Berechnungsmethode
extern int MA1_Shift=1; // MA1-Zeitverschiebung
extern int MA2_Shift=1; // MA2-Zeitverschiebung
extern double Lot = 0.01; // Festes Lot
extern int slippage = 0; // Preisabweichung für Marktaufträge
int New_Bar; // 0/1 Neue Taktformung
int Time_0; // Startzeit eines neuen Taktes

int PosClose; // Kreuzungsrichtung
int total; // Anzahl der offenen Aufträge
double MA1_0; // Aktueller Wert des ersten МА (rosa)
double MA1_1; // Vorheriger Wert des 1. MA (rosa)
double MA2_0; // Aktueller Wert des 2. MA (blau)
double MA2_1; // Vorheriger Wert des 2. MA (blau)
int orderBuy; // 1 = Vorhandensein der Kaufbestellung
int orderSell; // 1 = Vorhandensein eines Verkaufsauftrags
//============================================================================================
int init()
{

}
//============================================================================================
int start()
{

doppelter Preis;

int total=OrdersTotal(); // Bestellungen insgesamt
for(int i=Gesamt-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) // Auftrag auswählen
{
if(OrderType()==OP_BUY) // wenn ein Kaufauftrag
{
orderBuy=1;
if(CrossPositionClose()==1) // Schließen Sie den Auftrag, wenn er den Anforderungen entspricht
{ // Bedingung CrossPositionClose()=1
Preis=MarketInfo(Symbol(),MODE_BID);
OrderClose(OrderTicket(),OrderLots(),Preis,Slippage,CLR_NONE);
}
}
if(OrderType()==OP_SELL) // Wenn ein Kaufauftrag erteilt wird
{
orderSell=1;
if(CrossPositionClose()==2) // Schließen Sie den Auftrag, wenn er den Anforderungen entspricht
{ // Bedingung CrossPositionClose()=2
Preis=MarketInfo(Symbol(),MODE_ASK);
OrderClose(OrderTicket(),OrderLots(),Preis,Slippage,CLR_NONE);
}
}
}
}

New_Bar=0; // Zuerst wird der Balken auf Null gesetzt
if (Time_0 != Time[0]) // Wenn die Startzeit des Taktes bereits unterschiedlich ist
{
New_Bar= 1; // Hier ist ein neuer Balken
Time_0 = Time[0]; // Merken Sie sich die neue Startzeit des Taktes
}

MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 0); // Aktueller Wert des 1. MA
MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1); // Vorheriger Wert des 1. MA
MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 0); // Aktueller Wert des 2. MA
MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1); // Vorheriger Wert des 2. MA


Rückkehr;
}

//============================================================================================
int CrossPositionClose()
{
PosClose=0; // hier ist der Hund begraben!!:)
if ((MA1_1>=MA2_0 && MA1_0<MA2_0) || (MA1_1>MA2_0 && MA1_0<=MA2_0)) // CrossPosition Close {
{
PosClose=1;
}
if ((MA1_1<=MA2_0 && MA1_0>MA2_0) || (MA1_1<MA2_0 && MA1_0>=MA2_0)) // Schnittpunkt nach unten
{
PosClose=2;
}
return(PosClose); // Rückgabe der Kreuzungsrichtung.
}
//============================================================================================

//============================================================================================
int MAMethode(int MA_Methode)
{
switch(MA_Methode)
{
Fall 0: return(0); //return MODE_SMA=0
Fall 1: return(1); // return MODE_EMA=1
Fall 2: return(2); // Rückgabe MODE_SMMA=2
Fall 3: return(3); //return MODE_LWMA=3
}
}
//============================================================================================
int MAPrice(int MA_Price)
{
switch(MA_Preis)
{
Fall 0: return(PREIS_SCHLIESSEN); // Return PRICE_CLOSE=0
Fall 1: return(PRICE_OPEN); //return PRICE_OPEN=1
Fall 2: return(PRICE_HIGH); //return PRICE_HIGH=2
Fall 3: return(PREIS_TIEF); //return PREIS_TIEF=3
Fall 4: return(PRICE_MEDIAN); //return PRICE_MEDIAN=4
case 5: return(PREIS_TYPISCH); //return PREIS_TYPISCH=5
Fall 6: return(PREIS_GEWICHTET); //return PREIS_GEWICHTET=6
}
}
//============================================================================================

 
Sepulca, das habe ich schon versucht, der Compiler schwört.
 
okidoki543:
Sepulca, das habe ich schon versucht, der Compiler schwört.

Das kann nicht sein, ich werde es selbst ausprobieren......
 
Scheiße, jetzt wird nicht mehr geflucht. Entschuldigung für die Verwechslung. Der Fehler trat aus irgendeinem Grund schon vorher auf. (
 
Keine Schimpfwörter .... Test von you..... Ich habe bereits Änderungen vorgenommen, der Autor möge mir verzeihen....
 
Ich habe zwei meiner Forenbeiträge mit einem Klick geöffnet, oder meine Maus klappert oder etwas anderes. Ich muss es später wieder löschen......Aber ich werde diesen Beitrag überprüfen....
 

Sepulca, danke, dein Code funktioniert. Nur habe ich die Schichten wieder an ihren Platz gestellt.

Ich werde es auf längeren Zeitrahmen zu überprüfen, werde ich es für ein paar Tage zu foltern, um sicherzustellen, dass dieser Code funktioniert.

Grund der Beschwerde: