Wie hoch ist die Ersteinlage? - Seite 9

 

Runter mit dem glitchy wind :)


Um einen Winkel zu messen, benötigen Sie einen Punkt + Bezugspunkt und einen Punkt, an dem Sie den Winkel messen.


Für den Anfang:

int cnt, total;
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
}

 
meta-trader2007 писал (а) >>

Für den Anfang:

Hier ist ein Codeschnipsel mit einer Auftragsüberschreitung. Der Code für den Trailing-Stop stammt von hier: Bibliothek von Funktionen und Expert Advisors für Trailing Stop / Yuri Dzyuban'.

   int cnt, itotal;
   total=OrdersTotal();
   for(cnt=0;cnt<total;cnt++)
   {
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
   iTicket=OrderTicket();
   Comment("\nOrderTicket = ", iTicket);

   // проверяем переданные значения
   if ((iTicket==0) || (!OrderSelect(iTicket,SELECT_BY_TICKET)) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
      {
      Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов.");
      return(0);
      } 

   double   dMA; // значение скользящего среднего с переданными параметрами
   
   // определим значение МА с переданными функции параметрами
   dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);
         
   // если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
   if (OrderType()==OP_BUY)
      {
      if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
         Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
  
   // если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
   if (OrderType()==OP_SELL)
      {
      if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
         Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
   }
Gibt 0 zurück, verdammt noch mal!!!
 




for(int cnt=0;cnt<OrdersTotal();cnt++){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
Comment("\nOrderTicket = ", iTicket);
// проверяем переданные значения
if ((iTicket==0) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
{Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов."); return(0);}
// определим значение МА с переданными функции параметрами
double dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);// значение скользящего среднего с переданными параметрами
// если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
if (OrderType()==OP_BUY){
if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)){
if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}
// если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
if (OrderType()==OP_SELL){
if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
{if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}}




Swetten , schreiben Sie, wenn Sie noch etwas brauchen.

 
meta-trader2007 писал (а) >>




Schreiben Sie, wenn Sie noch etwas brauchen.

Herzlichen Dank! Nur meine Schuld - ich hatte einen höheren Zyklus mit return(0), so dass es sich versteckte und mich nach und nach verletzte.

Ich habe eine Frage: Haben Sie ein Programm, in das ich die Losgröße und das Paar eingebe, und das mir anzeigt, wie viel Geld (z. B. in Rubel) ich für den Kauf dieses Loses benötige, den Punktwert usw.?

Jedes Mal, wenn Sie zum Beispiel 1,3 Lose GBPUSD und dann 2,8 Lose EURJPI zählen, wird es ein wenig müde.

 
Swetten писал (а) >>

Herzlichen Dank! Nur meine Schuld - ich hatte einen höheren Zyklus mit return(0), so dass es sich versteckte und mich nach und nach verletzte.

Ich habe eine Frage: Haben Sie ein Programm, in das ich die Losgröße und das Paar eingebe, und das mir anzeigt, wie viel Geld (z. B. in Rubel) ich für den Kauf dieses Loses benötige, den Punktwert usw.?

Jedes Mal, wenn Sie z. B. 1,3 Lots GBPUSD und dann 2,8 Lots EURJPI zählen, wird es ein bisschen mühsam.

Bei GBPUSD lächelte er. Bei der EBUJPI bin ich mit einem Sündenbock untergegangen. Es tut mir leid, ich meine das nicht böse.

 
Und noch eine Frage: Es gibt drei Variablen. Von jeder Art. Ist es möglich, die folgende Bedingung zu erfüllen: Wenn zwei von drei Variablen der Bedingung so und so entsprechen, dann tue so und so?
 
Von
Swetten писал (а) >>
Eine weitere Frage: Es gibt drei Variablen. Von jeder Art. Ist es möglich, die folgende Bedingung zu erfüllen: Wenn zwei von drei Variablen der Bedingung so und so entsprechen, dann tue so und so?

bool a,b,c; //Переменные. True - удовлетворяют условию, False - не удовлетворяют.
int count; // Счетчик количества переменных, удовлетворяющих условию.
 
if(a==true)
 count++;
if(b==true)
 count++;
if(c==true)
 count++;
 
if(count>=2)
{
  //Делаем то-то
}

Ich empfehle, das Thema in "Fragen von Swetten" umzubenennen -)

 

zu diesem Thema =)

Ich benutze einen von ihnen ernsthaft =) es läuft jetzt seit zwei Tagen.

zum Üben, 200 Pfund.

für mts, ein wenig ernster, 700 Pfund.

für Langzeit-MTs ab 7.000 Pfund

IMHO =)

 

Hier ist eine weitere gute Frage: Es gibt Daten wie:

P1[a, b, Schritt]

P2[c, d, step]

P3[e, f, Schritt]

P4[g, h, Schritt]

P5[i, j, Schritt].

Wie kann ich sie in einem Rutsch in eine Datei schreiben und dann von dort auslesen?

Ich habe es so gemacht:

for(step = 1; step <= Dlina; stop++)
         {for(et = 1; it <= 20; et++)
             {for(i = 0; i <= min1 - 1; i++)
                 { FileWrite(file1, data0-0[i,it,stop]); 
                   FileWrite(file1, data0-1[i,it,stop]); 
                   FileWrite(file1, data0-2[i,it,stop]);
                   FileWrite(file1, data1-1[i,it,stop]); 
                   FileWrite(file1, data1-2[i,it,stop]); 
                   FileWrite(file1, data1-3[i,it,stop]);
                   FileWrite(file1, data2-0[i,it,stop]); 
                   FileWrite(file1, data2-1[i,it,stop]); 
                   FileWrite(file1, data2-2[i,it,stop]);
                   FileWrite(file1, data3-0[i,it,stop]); 
                   FileWrite(file1, data3-1[i,it,stop]); 
                   FileWrite(file1, data3-2[i,it,stop]);
                   FileWrite(file1, data4-1[i,it,stop]); 
                   FileWrite(file1, data4-2[i,it,stop]); 
                   FileWrite(file1, data4-3[i,it,stop]);
                 }
             }
         }
Es ist alles wunderbar geschrieben, aber im Inneren ist es nur Unsinn. Das Lehrbuch ist auch ein bisschen ein Ratespiel! Und wie kann man Daten wie eine Tabelle schreiben und lesen? Und Arrays wie dieses? Und ganz allgemein? In Kims Bibliothek gibt es einen Blick hinein.
 
Swetten писал (а) >>

Herzlichen Dank! Nur meine Schuld - ich hatte einen höheren Zyklus mit return(0), so dass es sich versteckte und mich nach und nach verletzte.

Ich habe eine Frage: Haben Sie ein Programm, in das ich die Losgröße und das Paar eingebe, und das mir anzeigt, wie viel Geld (z. B. in Rubel) ich für den Kauf dieses Loses benötige, den Punktwert usw.?

Jedes Mal, wenn Sie z. B. 1,3 Lots GBPUSD und dann 2,8 Lots EURJPI zählen, wird es ein bisschen mühsam.

Es gibt einen Trader's Calculator:)