[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 357

 
Zhunko:
Würden Sie bitte den Code veröffentlichen? Vielleicht ein Pseudo-Code. Wie meinen Sie das, ohne Start...? Es handelt sich um eine grundlegende Funktion, wie main() in C++.

Es hängt davon ab, welche Aufgaben Sie lösen wollen, und bestimmt die Position Ihres Codes im Hauptteil des EA-Programms. Niemand zwingt uns, den Code in der start()-Funktion zu behalten!

Die Funktion start() ist eine von drei vordefinierten Funktionen in unserer Codevorlage. Es sollte vorhanden sein, zumindest!, weil das übergeordnete Programm - das Terminal-Programm (das ist main(), die wichtigsten), die Durchführung ihrer wichtigsten Aufgaben, die ein frisches Angebot vom Server (ungefähr) nur in Ihre Funktion Start und führen Sie den Code, der in ihm ist, wenn es nur return(), dann die Start-Funktion wird hier aufhören.

 
"Fachleute, geht nicht vorbei", :) bitte teilen Sie einen Link zu Ihrer bevorzugten (vorzugsweise russischsprachigen) Nachrichtenquelle mit, wo der Wirtschaftskalender und andere nützliche Informationen veröffentlicht werden. Wenn solche Links nicht hier gepostet werden können, dann schicken Sie sie mir per PM.
 
Helfen Sie mir beim Schreiben.

wenn es ein Kaufsignal gibt
prüfen Sie offene Verkaufsaufträge
wenn ja, schließen Sie
wenn nein, öffnen Sie Kauf

wenn es ein Verkaufssignal gibt
prüfen Sie offene Kaufaufträge
wenn ja, schließen Sie
wenn nein, öffnen Sie Kauf
 
frxmax:
helfen, das Folgende zu schreiben.

wenn es ein Kaufsignal gibt
Offene Verkaufsaufträge prüfen
wenn ja, schließen
wenn es kein Kaufsignal gibt

wenn es ein Verkaufssignal gibt
Offene Kaufaufträge prüfen
wenn ja, schließen wir
wenn kein Signal, Kauf wieder eröffnen


Fangen Sie selbst an zu schreiben - wir werden Ihnen helfen

Hier ist ein Anfangspunkt, der Ihnen helfen soll: https://book.mql4.com/ru/

 
abolk:


Fangen Sie selbst an zu schreiben - wir helfen Ihnen dabei

Hier ist es: https://book.mql4.com/ru/

Ich habe bereits "angefangen".

total=AuftragsSumme();
if(CONDITION zur Eröffnung eines Kaufauftrags)
if(gesamt<1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Bid-StopLoss*Point,Bid+100*Point, "Buy",1111,0,Green);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
zurück(0);
}
}else
{
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_SELL)
OrderClose(NULL,Lot,Ask,3);
zurück(0);
}
}

 
Fast richtig, erst prüfen und dann einrichten.
 
frxmax:
helfen, das Folgende zu schreiben.

wenn es ein Kaufsignal gibt
Offene Verkaufsaufträge prüfen
wenn ja, schließen
Wenn es kein Signal gibt, können wir einen Kaufauftrag eröffnen.
//  в ф-ции старт 
  
if(....условие покупки....){
     if(CalculateOrders(Symbol(),OP_SELL)>0) Ord_Close(Symbol(),OP_SELL);
     Ticket(OP_BUY);      }

//-----------------------
int CalculateOrders(string simbol,int type)
  {
   int count=0;
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==simbol)
        {
         if(OrderType()==type)  count++;
        
        }
     }
     
 return(count);
  }

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

void Ord_Close(string simb,int type) {  double price;
   
   if(type==OP_BUY)  price=MarketInfo(simb, MODE_BID); else
   if(type==OP_SELL) price=MarketInfo(simb, MODE_ASK);

   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
      if( OrderSymbol()!=simb || OrderMagicNumber()!=mn) continue;
      //---- check order type 
      if(OrderType()==type)
        {  OrderClose(OrderTicket(),OrderLots(),price,3,White);   break;  }
        
        
     }   
     
     
 } 
//-----------------------------

int Ticket(int op){
      double pp = MarketInfo(Symbol(), MODE_POINT);
      double pBid = MarketInfo(Symbol(), MODE_BID);
      double pAsk = MarketInfo(Symbol(), MODE_ASK); 
      double open_price;
      double T;
      color col=NULL;
      int mn=0;
      
  if(op==0) {open_price=pAsk; col=Blue; T=pAsk+Take*pp;}
  if(op==1) {open_price=pBid; col=Red;  T=pBid-Take*pp;}
  int res=OrderSend(Symbol(),op,0.1,open_price,0,0,T,NULL,mn,0,col); 

   return(res);               }
 
KONDOR:

Vielen Dank für Ihre Hilfe, aber ich habe die Dinge ein wenig anders angepackt, und Ihr Ansatz ist mir etwas unklar.

Könnten Sie mir erklären, wie ich das alles verkaufen soll? Ich verstehe hier einfach vieles nicht.

Sie haben uns sehr geholfen.

 
frxmax:

Ich habe versucht, alles zu verkaufen - erfolglos. keine Geschäfte offen

Fehler 130. - Die Haltestellen sind nicht richtig, also wo haben wir sie dort?

Jetzt wird für jeden Takt ein Auftrag eröffnet, aber ich brauche nur einen.


total=AuftragsSumme();

if(gesamt<1)

usw.

 
KONDOR:


Hmm, ich habe mich eingehender mit dem Spiel beschäftigt - Gebote und Änderungswünsche usw... danke dafür)

Ich habe auch die Anschläge geklärt.