[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 196

 
torah01:

kaufen


int start()

{
OrderSend(Symbol(),OP_BUYSTOP,0.01,Ask+20*Point,3,Bid- 50*Point,Bid+50*Point);

zurück(0);
}

Hilfe bitte...

+ wurde in - geändert. Und überprüfen Sie Ihre Stops und Takes, im Moment haben Sie Stop=70 + Spread, Take=+30 minus Spread
 
TheXpert:
Bitte verbreiten Sie keine Ketzerei in der Öffentlichkeit. Geh woanders nerdig sein, es gibt genug zu tun...

Danke, ich wollte gerade zu Ihnen kommen, um mich mit Ihnen zu beraten.
 
NickXXX:

1. Hier wurde die Verdopplung nur angewandt, um Minuten und Stunden hinzuzufügen, damit Bezugspunkte als HH bezeichnet werden können.MM (z.B. 16. 23).

2. Wenn man sich die letzten Seiten ansieht, geht es natürlich um datetime, aber nicht genau um dasselbe. Sie geben einfach den Zeitpunkt der letzten Bestellung im Format HH.MM aus.



Keine gute Suche. Seite 190, Postzeit 18.09.2011 23:03
 
nemo811:

Hallo.

Bitte helfen Sie mir, den Code zu korrigieren.

Beide Zeilen unten sind fehlerhaft.

Vielen Dank im Voraus.

Das Programm selbst:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY würde mehr Sinn machen

 
tara:

< 0,6, oder so ähnlich. Der Rest der Division ist immer kleiner als eins :)

Warum?) Der Rest von 12 geteilt durch 10 = 2.
NickXXX:

Was ist, wenn es viele solcher Variablen gibt?

Ist das zu schade, oder wird es funktionieren?

Und noch eine kleine Frage: Wenn ich z.B. ein Intervall (z.B. 16.00-16.03) für eine auszuführende Bedingung festlege. Wie kann man erreichen, dass sie nur einmal ausgeführt wird, obwohl neue Ticks hinzukommen?

Das funktioniert. Und um dies nur einmal zu tun, geben Sie eine zusätzliche Dienstvariable ein, etwa wie folgt

bool flag=true;

int start()
{
  if (ваше уловие по времени && flag)
  {
    тра-та-та
    flag=false;
  }
}
 
Figar0:

Warum?) Der Rest von 12 geteilt durch 10 = 2.

Das wird funktionieren. Und um es einmal zu tun, geben Sie eine zusätzliche Dienstvariable ein, etwa so:


Ja, es ist ein wenig unschön :)
 
tara:


if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)

MODE_HISTORY würde mehr Sinn machen.

Ich könnte nicht mehr zustimmen. Nachts verlangsamt sich mein Gehirn.

Aber auch mit dieser Korrektur ist mir aufgefallen, dass der obige Fehler (Verwechslung zwischen magischer Variable und Zahl) im Skript auftritt, wenn Sie die Variable int MAGIC; neu deklarieren (genau diese Magie ist aus irgendeinem Grund gesperrt). Wenn Sie int MAGIC; entfernen (extern int MAGIC = 1; bleibt), funktioniert alles wie am Schnürchen.

Eine logische Frage: Wozu brauche ich das? Sie können int MAGIC entfernen; und Ihr Leben in Frieden leben. ABER.

Ich muss diesen Code in eine Bibliothek einfügen. Wenn ich aber int MAGIC nicht definiere, kommt es zu einem Fehler.

Das ist es, was ich tun sollte. Wird das alles in meinem Expert Advisor funktionieren? Warum ist diese int MAGIC; ?

Das Skript unten:

extern int MAGIC = 1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
int OrdTicket=OrdTicket_b();
  Alert (OrdTicket);

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
int OrdTicket_b()
 {
  string SMB=Symbol();
  int OrdTicket;
  int i;
  for(i=0;i<OrdersTotal();i++)
   {
    if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderSymbol()==SMB)
       {
        if(OrderMagicNumber()==MAGIC || OrderMagicNumber()==777)
         {
          if(OrderType()==OP_BUY || OrderType()==OP_SELL)
           {
            OrdTicket=OrderTicket();
           }  
         }  
       }          
     }
   }
  return(OrdTicket);
 
In welchem Ordner werden die Mailserver-Einstellungen im mt-4-Terminal gespeichert?
 

Genossinnen und Genossen, helft bitte... Ich habe einen einfachen Code geschrieben, aber beim Kompilieren sagt er, dass die Klammern nicht im Gleichgewicht sind, aber ich habe sie schon 300 Mal gezählt - alles ist an seinem Platz

Die Idee ist ganz einfach: Wenn der MACD 7 Minuten oder weniger über (oder unter) 0 liegt, wird die Position eröffnet.

//+------------------------------------------------------------------+
//| MACD ^^^.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#property link "http://www.metaquotes.net"

extern int TP = 100;
extern int TS = 100;
extern double lots = 0.1;
int Schlupf = 3;
int Magie = 1;

//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----

//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{
//----

int total,ticket; //Gesamt und Ticket deklariert
int signal = signal_MACD(); // signal_MACD übergibt Wert an Signal
AnalyzeSignal(signal); //Analyse des Signals
int MACD[8] = {0,1,2,3,4,5,6,7}; //Erstellen eines eindimensionalen MACD-Arrays
MACD[0] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,7)
MACD[1] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,6);
MACD[2] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,5);
MACD[3] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,4);
MACD[4] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,3);
MACD[5] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,2);
MACD[6] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,1);
MACD[7] = iMACD(Symbol(),1,5,34,5,PRICE_CLOSE,MODE_MAIN,0);

total = OrdersTotal(); //Total zählt Bestellungen

int signal_MACD() //Berechnung des MACD-Signals
{
if(total<1) //wenn die Aufträge kleiner als 1 sind, die Bedingungen berücksichtigen
{
wenn(MACD[0]<0)
{
wenn(MACD[1]>0)
{
wenn(MACD[2]>0)
{
{ if(MACD[3]>0)
{
{ if(MACD[4]>0)
{
{ if(MACD[5]>0)
{
{ if(MACD[6]>0)
{
{ if(MACD[7]<0)
{
zurück(-100);
}
}
}
}
}
}
}
}
wenn(MACD[0]>0)
{
wenn(MACD[1]<0)
{
wenn(MACD[2]<0)
{
{ if(MACD[3]<0)
{
{ if(MACD[4]<0)
{
{ if(MACD[5]<0)
{
{ if(MACD[6]<0)
{
wenn(MACD[7]>0)
{
zurück(100);
}
}
}
}
}
}
}
}
}
}

void AnalyzeSignal(int signal)
{
if(Signal == 100)
{
ticket = OrderSend(Symbol(),OP_BUY,Ask,slip,Bid-TS*Point,Bid+TP*Point, "buy",Magic,0,Green);
if(Ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET;)
Print("geöffnet für Kauf zum Preis:" OrderOpenPrice());
}
sonst
{
Print("Öffnen fehlgeschlagen aufgrund von:" GetLastError());
zurück(0);
}
}
if(Signal == -100)
{
ticket = OrderSend(Symbol(),OP_SELL,Bid,slip,Ask+TS*Point,Ask-TP*Point, "Sell",Magic,0,Green);
if(Ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
Print("zum Verkauf geöffnet zu Preis:" OrderOpenPrice());
}
sonst
{
Print("Öffnen fehlgeschlagen aufgrund von:" GetLastError());
zurück(0);
}
}
}

//----
zurück(0);
}
//+------------------------------------------------------------------+

 
p.s. Wie zeichnet man eine so schöne Schrift wie Ihre?
Grund der Beschwerde: