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

 
artmedia70:
Zeit[number_bar];

Ich danke Ihnen! Ich werde versuchen, es zu verschreiben :)
 
nemo811:
Haben Sie den Preis berücksichtigt, zu dem Ihre Aufträge eröffnet werden (Ask oder Bid)?

Ich habe Ihnen gesagt, dass Sie die Order zum gleichen Preis eröffnen sollen, aber sie wird 1-2 Pips später eröffnet.
 
myrzila:

Ich sage Ihnen, ich verschreibe einen Auftrag, der zum gleichen Preis eröffnet wird, und er öffnet sich 1-2 Pips später.

Ja, einige Maklerunternehmen können Positionen mit Slippage verwenden. Ich habe selbst nicht daran geglaubt, bis ich es mit meinen eigenen Augen gesehen habe. Zu dieser Zeit haben mein Freund und ich in einem der Brokerage-Unternehmen Scalping betrieben. Das Geschäft dauerte auf dem Markt nicht länger als eine Minute und wurde sofort abgeschlossen. Da die überwiegende Mehrheit der Transaktionen im Plus abgeschlossen wurde, war dies für die Maklerunternehmen nicht rentabel. Diese Maklerfirma zahlte uns, was wir verdienten, und führte Slippage bei schwebenden Aufträgen und Slippage beim Auslösen von Stop-Aufträgen ein, die alle unsere Geschäfte zunichte machten. So wird es gemacht. Wenden Sie sich also an Ihre Brokerfirma und fragen Sie sie, warum Sie Aufträge nicht zu dem Kurs eröffnen, zu dem sie eingestellt sind.
 

Guten Tag!

Zurück zu einer Frage, die ich nicht selbst beantworten konnte. Wie kann ich programmatisch Einzahlungen/Abhebungen für einen bestimmten Zeitraum ermitteln?

Das heißt, wenn Sie den Handelszeitraum vom 25. November nehmen und alle Aufträge für diesen Zeitraum durchgehen, können Sie die Einzahlungen/Abhebungen für diesen Zeitraum ermitteln. Und hier ist die Frage: Wie rechnet man?

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6)
          {
            jjjj=+ //а вот здесь загвоздка, что-же суммировать? профит по OrderType()==6????????
          }
       }
     }
 
forexnew:

Guten Tag!

Zurück zu einer Frage, die ich nicht selbst beantworten konnte. Wie kann ich programmatisch Einzahlungen/Abhebungen für einen bestimmten Zeitraum ermitteln?

Das heißt, wenn Sie den Handelszeitraum vom 25. November nehmen und alle Aufträge für diesen Zeitraum durchgehen, können Sie die Einzahlungen/Abhebungen für diesen Zeitraum ermitteln. Und hier ist die Frage: Wie rechnet man?


Wenn OrderProfit() größer als Null ist - hinzufügen, kleiner - zurückziehen
 
Vinin:

Wenn OrderProfit() größer als Null ist - füllen, kleiner - zurückziehen

Ich danke Ihnen! D.h. es ist möglich festzustellen, welche Befüllungen und Abhebungen getrennt waren?!

extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }

         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()==6 && OrderProfit()<0)
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 

Warum gibt die Funktion zur Berechnung des maximalen Loses für das Instrument #DD "0" zurück? Dies ist nicht immer der Fall.

double MaxmaxLots(int cmd) 
{
    double result = 0;
    double lotStep = MarketInfo(SymbolMax[nnnn], MODE_LOTSTEP);
    double v = MarketInfo(SymbolMax[nnnn], MODE_MINLOT);
    double mult = 100;
    
    while (true) {
        if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v + lotStep * mult) > 0) { 
            v = v + lotStep * mult;
        } else {
            mult = mult / 10;
            
            if (mult < 1) {
                if (AccountFreeMarginCheck(SymbolMax[nnnn], cmd, v) > 0) {  
                    result = v;
                }
                break;
            }
        }
    }
    
    return(result);
}    
 
forexnew:

Ich danke Ihnen! D.h. es ist möglich zu erkennen, welche Auffüllungen und Entnahmen individuell waren!


extern string            DayX="25.11.2011 00:00";   

if(TimeCurrent()>StrToTime(DayX)) //если текущее время старше момента начала периода
     {
      for(i=0; i<StrToTime(OrdersHistoryTotal()); i++)
       {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)=false) continue;
         if(OrderOpenTime()<StrToTime(DayX)) continue;
         if(OrderType()!=6) continue;

         if(OrderProfit()>0)
          {
            Profit1=+OrderProfit(); //доливки
          }
         else 
          {
            Profit2=+OrderProfit(); //снятия          
          }
       }
     }
 
int start()

  {
  DrowDownAlert=iCustom(NULL, 0, "Equity_v7",4,0);  
   

 double a=TotalLots(0);
 double b=TotalLots(1);
  Comment (a,b);
  return(0);
  }

//----------------------- подсчёт объема позиций----------------------------//
void TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}
Warum gibt der Errork aus, dass die Funktionsrückgabe ein Nullergebnis hat, was ist der Fehler?
 
nikelodeon:
Warum gibt der Errork aus, dass die Funktionsrückgabe ein Nullergebnis hat, was ist der Fehler?

//----------------------- подсчёт объема позиций----------------------------//
int TotalLots(bool zet)
{
   double total=0,total1=0;
   int slippage=20;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) total=total+OrderLots();
      if (OrderType()==OP_SELL) total1=total1+OrderLots();
   }
 if (zet==0) return (total); else return (total1) ;  
 
}