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

 
TarasBY:
Und wo haben Sie das über TimeDayOfWeek () (im Beispiel) gelesen ?:)))

Auf der rechten Seite ;)

Ich war falsch, ich kann es in Time[] Form zu setzen, aber in dem Beispiel ist es anders und bequemer ))))

 
Vitek2010:
Nein, ich erkläre es Ihnen - Ihr Forum ist wie eine Hoffnung für die letzte kompetente Hochburg der Prog. und Einfügung von Größe - so sieht es die Schrift PERIOD_W1, aber weder die Verwendung von Größe noch die Verwendung von festen Daten in Form von Datumsangaben bringen den gewünschten Effekt. Ich habe eine spezielle Frage zum Freitag gepostet - übrigens lässt sich Ihr Code nicht kompilieren, weil er 'Version' sagt - unbekannte Eigenschaft, wenn Sie also nicht wissen, wie Sie DayOfWeek und 5 (die Zahl des Freitags) in den Code einfügen können,helfen andere Optionen nicht .


if(TimeDayOfWeek(TimeCurrent())==5)   //Пятница
 
r772ra:



Bitte fügen Sie Ihre Variante in meinen Indikatorcode ein und kompilieren Sie ihn. und posten Sie den korrigierten Indikator im Klartext und nicht als Datei. Genosse Venin gab mir einen unkompilierbaren Code und keine Antwort.

#property indicator_separate_window

#Eigenschaft indicator_buffers 1

#Eigenschaft indicator_color1 Lime

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

double Puffer[];

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

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexPuffer(0,Puffer;)

zurück(0);

}

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


int deinit()

{


zurück(0);

}

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

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Freitag

if(TimeDayOfWeek(Time[i]) < TimeDayOfWeek(Time[i+1])

Puffer[i] = 0;

sonst

Puffer[i] = Puffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){/wenn sowohl die aktuelle als auch die vorherige Bewegung ansteigend sind

Puffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){/// wenn die aktuelle und vorherige Bewegung nach unten geht

Puffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){///wenn die aktuelle Bewegung steigend und die vorherige fallend ist

Puffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){/// wenn die aktuelle Bewegung nach unten und die vorherige nach oben geht

Puffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

zurück(0);

}

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

 
Vitek2010:


Bitte fügen Sie Ihre Variante in meinen Indikatorcode ein und kompilieren Sie ihn. und posten Sie den korrigierten Indikator im Klartext und nicht als Datei. Genosse Venin gab mir einen unkompilierbaren Code und sagte kein Wort.


509 bauen

//+------------------------------------------------------------------+
//|                                                    Vitek2010.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window

#property indicator_buffers 1

#property  indicator_color1 Lime

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

double Buffer[];

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

int init()

{

SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, 2);

SetIndexBuffer(0,Buffer);

return(0);

}

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



int deinit()

{



return(0);

}

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

int start()

{

int StartBar = Bars - IndicatorCounted() - 1;

for(int i = StartBar; i >= 0; i--)

{

if(TimeDayOfWeek(TimeCurrent())==5) //Пятница

Buffer[i] = 0;

else

Buffer[i] = Buffer[i+1];

if(Close[i]>Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее и преддыдущее движение растут

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее и преддыдущее движение падают

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]>Close[i+1]&&Close[i+1]<Close[i+2]){//если текущее лвижение растет а предыдущее падает

Buffer[i] += NormalizeDouble((Close[i+1] - Close[i])/Point,0);}

if(Close[i]<Close[i+1]&&Close[i+1]>=Close[i+2]){//если текущее движение падает а предыдущее растет

Buffer[i] += NormalizeDouble((Close[i] - Close[i+1])/Point,0);}

}

return(0);

}

//---------------------------------------------------------------------
 
So kann man den Freitag in der Geschichte nicht definieren, ich weiß nicht.
 
TarasBY:
Was hat dann der Verweis auf eine konforme Bibliothek damit zu tun?


Weil:

TarasBY:
Vitya, hier gibt es nichts zu klären - die Person möchte, dass globale Variablen aus einer Sandbox (EA mit seinen Bibliotheken) in einer anderen Sandbox(kompilierte Bibliothek) sichtbar sind. :)))
 

Meine Herren, könnten Sie mir einen Gefallen tun und einen Blick auf diesen Code werfen, um zu sehen, ob ich die Eingabebedingungen für die 3 Indikatoren richtig eingegeben habe?

Denn ich lerne gerade eine Menge Dinge, die ich nicht verstehe.

E_ma=iMA(Symbol(),TimeFrame,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
Cloce =iClose(Symbol(),PERIOD_H1,1);

e_ma=iMA(Symbol(),timeframe,period_ema,0,MODE_EMA,PRICE_CLOSE,1);
cloce =iClose(Symbol(),PERIOD_M15,1);

bbUP=iCustom(Symbol(),PERIOD_M5,"Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,1,0);
bbDOWN=iCustom(Symbol(),PERIOD_M5, "Bollinger Bands",BandsPeriod,BandsShift,BandsDeviations,2,0);

if(OrdersTotal()==0 && CountBuy()==0 && CountSell())
{
if(Cloce >E_ma && cloce >e_ma)
{
if(Ask<=bbDOWN)
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Green);
if(Ticket>0)
{
TP = NormalizeDouble(Ask + TakeProfit * Point, Digits);
SL = NormalizeDouble(Ask-StopLoss * Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
sonst
if(Cloce <E_ma && cloce <e_ma)
{
if(Gebot>=bbUP)
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red);
if(Ticket>0)
{
TP = NormalizeDouble(Bid - TakeProfit * Point, Digits);
SL = NormalizeDouble(Bid+StopLoss* Point, Digits);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0);
}
}
}


zurück(0);

Korrigieren Sie mich, wenn etwas falsch ist, kompiliert ohne Fehler, aber in der testor Aufträge nicht öffnen. Weil? wo ein Fehler in der Bedingung. Wie man es richtig zu schreiben, verstehe ich noch nicht.jemand auf die Finger erklären BITTE!!!

 
r772ra:
Das ist alles falsch, wie man den Freitag in der Geschichte definieren soll, weiß ich nicht.

Sie haben die Nullstellung des Wochenzyklus if(TimeDayOfWeek(Time[i])) < TimeDayOfWeek(Time[i+1])) entfernt und durch if(TimeDayOfWeek(TimeCurrent())==5) //Freitag ersetzt. Wenn diese Funktionen irgendwie zusammenarbeiten, könnte es vielleicht funktionieren. Ich habe vielleicht hundert verschiedene Dinge ausprobiert. Ich denke, es ist einfach, multitime Messwerte mit wöchentlichen Zeitrahmen auf niedrigeren Zeitrahmen anzuzeigen. Ich kann immer noch keine Lösung finden.

 
Vitek2010:

Ja, Sie haben die Nullstellung des Wochenzyklus if(TimeDayOfWeek(Time[i])) < TimeDayOfWeek(Time[i+1])) entfernt und durch if(TimeDayOfWeek(TimeCurrent())==5) ersetzt//Vielleicht funktioniert es, wenn diese Funktionen irgendwie miteinander verbunden sind. Ich habe wahrscheinlich Hunderte von Varianten ausprobiert. Ich denke, es ist einfach, multitime Messwerte mit wöchentlichem Zeitrahmen auf niedrigeren Zeitrahmen anzuzeigen. Ich kann immer noch keine Lösung finden.


Hier ist eine Idee: Öffnen Sie eine neue Wochenleiste - setzen Sie den Puffer auf Null zurück und sammeln Sie dann Ihre Punkte
 
alsu:
Machen Sie Ticket zu einem Array Ticket[5] und speichern Sie alle 5 Tickets darin. Gehen Sie beim Schließen alle Tickets entsprechend durch.

Wie kann man es ungefähr umsetzen? Bei anderen Funktionen scheine ich es verstanden zu haben, aber bei Aufträgen und Arrays habe ich es noch nicht ganz verstanden.