[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 388

 
7777877:

Guten Tag. Warum gibt es einen MODE_MARGINREQUIRED-Parameter unter den MarketInfo-Anforderungskennungen, um den Betrag der freien Mittel zu bestimmen, der für die Eröffnung eines Loses zum Kauf benötigt wird, aber keinen Parameter zur Bestimmung des Betrags der freien Mittel, der für die Eröffnung eines Loses zum Verkauf benötigt wird? Und wie kann man feststellen, wie viel freie Mittel benötigt werden, um 1 Lot zu eröffnen und in der einen oder anderen Maklerfirma zu verkaufen?

P.S. Um das Forum nicht zu überfrachten, danke ich Ihnen im Voraus für die Antwort.

Sie benötigen etwas weniger Geld für den Verkauf, so dass Sie in der Praxis diesen einen Parameter verwenden können.
 

Können Sie mir sagen, ob es möglich ist, EAs in Ordnern abzulegen, anstatt sie alle in einem Ordner zu speichern?

Und dass sie auch von diesen Ordnern aus arbeiten.

Ich habe 20 Versionen von einem EA und 20 von einem anderen, und es ist unmöglich, mit einem kompletten Satz von Dateien fertig zu werden.

 

Guten Tag.

Die Suche hat nichts gebracht.

Vielleicht hat jemand ein ähnliches Drehbuch gesehen.

Der Punkt: Das Skript gibt an: Symbol, Kauf/Verkauf, Volumen

sollte es 5-7 solcher Felder geben.

für die gleichzeitige Öffnung auf mehreren Symbolen, deren Volumen ungleich 0 ist.

Ich danke Ihnen.

Mit freundlichen Grüßen.

 
Guten Tag. Ich habe eine Frage an Sie.... Einstieg durch Stochastik (5,14,3) Ausstieg ebenfalls durch Stochastik, aber mit einer anderen Periode (5,3,3). Ich weiß nicht, wie ich Stochastik für den Ausstieg, aber nicht die Rückkehr Signal verwenden können.
Ich habe ein Problem und ich habe keine Ahnung, wie es gelöst werden kann, ich werde versuchen, zu erklären.
Also, in dem Code, den ich gepostet habe, gibt es 2 Funktionen
//+------------------------------------------------------------------+
//| подготовить массив тикетов для закрытия |
//+------------------------------------------------------------------+
void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9])
{
int size=ArrayRange(arrayTickets,0);
//----
if (size==0) return;

int i,type,ticket,closeSize;
for (i=0;i<size;i++)
{
type=arrayTickets[i][1];
// если тип ордера не рыночный, то пропускаем
if (type>OP_SELL) continue;

if (Revers) // перевернем тип рыночного ордера
{
if (type==OP_BUY) type=OP_SELL; else type=OP_BUY;
}

// тут решаем для каждого открытого ордера его судьбу
// оставить в рынке или добавить в массив на закрытие
if (type==OP_BUY)
{
//
// код разрешающий оставить покупку

// как пример
if (signal==OP_BUY) continue;
}

if (type==OP_SELL)
{
//
// код разрешающий оставить продажу

// как пример
if (signal==OP_SELL) continue;
}

closeSize=ArrayRange(ticketsClose,0);
ArrayResize(ticketsClose,closeSize+1);
ArrayResize(lots,closeSize+1);
ticketsClose[closeSize][0] = arrayTickets[i][0]; // # тикета
ticketsClose[closeSize][1] = arrayTickets[i][1]; // тип ордера

// здесь укажем сколько лотов нужно закрыть
lots[closeSize] = arrayTickets[i][2]; // закрываемый объем
// можно закрывать частично, тогда нужно переписать строку сверху
}
//----
return;
}

//+------------------------------------------------------------------+
//| Закрывает ордера с указанными тикетами |
//+------------------------------------------------------------------+
void CloseMarketOrders(int ticketsArray[][2], double lotsArray[])
{
//----
int i,size=ArrayRange(ticketsArray,0);
if (size==0) return;

int ticket,type;
double lots;
bool res;

int total=OrdersTotal();

for (i=0;i<size;i++)
{
ticket = ticketsArray[i][0];
type = ticketsArray[i][1];
lots = lotsArray[i];
RefreshRates(); // на всякий случай обновим сведения о рыночном окружении

// блок закрытия покупок
if (type==OP_BUY)
{
res = OrderClose(ticket,lots,Bid,Slippage,Orange);
if (!res)
{
Print("Не удалось закрыть ордер в покупку #",ticket,"! Ошибка №",GetLastError());
// дальнейшая обработка ошибки, написать самостоятельно
}
}

// блок закрытия продаж
if (type==OP_SELL)
{
res = OrderClose(ticket,lots,Ask,Slippage,Orange);
if (!res)
{
Print("Не удалось закрыть ордер в продажу #",ticket,"! Ошибка №",GetLastError());
// дальнейшая обработка ошибки, написать самостоятельно
}
}

}
//----
return;
}
In void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9]) müssen wir eine Bedingung einfügen, die entscheidet, ob wir die Bestellung verlassen oder schließen sollen.
Ich habe versucht, Bedingungen zu stellen, aber nichts funktioniert....
Kann jemand nachsehen, ob es einen Fehler in diesen Funktionen gibt oder ob ich es vermasselt habe....
Dateien:
 
Snegovik:

Guten Tag.

Die Suche hat nichts gebracht.

Vielleicht hat jemand ein ähnliches Drehbuch gesehen.

Der Punkt: Das Skript gibt an: Symbol, Kauf/Verkauf, Volumen

sollte es 5-7 solcher Felder geben.

für die gleichzeitige Öffnung auf mehreren Symbolen, deren Volumen ungleich 0 ist.

Ich danke Ihnen.

Mit freundlichen Grüßen.


Das ist eine verdammt gute Formulierung. Was der Fragesteller wissen möchte...
 
belous:
Guten Tag. Ich habe eine Frage an Sie.... Einstieg durch Stochastik (5,14,3) Ausstieg ebenfalls durch Stochastik, aber mit einer anderen Periode (5,3,3). Ich verstehe nicht, wie ich Stochastik für das Ausstiegssignal, aber nicht für das Rückgabesignal verwenden kann.
Ich habe ein Problem und ich habe keine Ahnung, wie es gelöst werden kann, ich werde versuchen, zu erklären.
In dem Code, den ich entworfen habe, gibt es 2 Funktionen
In void PrepareTicketsToClose(int signal, bool Revers, int & ticketsClose[][2], double & lots[],double arrayTickets[][9]) müssen wir eine Bedingung setzen, die entscheidet, ob wir die Bestellung verlassen oder schließen sollen...
Ich habe versucht, Bedingungen zu stellen, aber nichts funktioniert....
Kann mir jemand zeigen, ob es einen Fehler in diesen Funktionen gibt oder ob ich es vermasselt habe....


Vielleicht ist es ja hilfreich. Ich habe mir Ihren Code nicht angesehen.
Kims Funktionen.

  //========================================================================================================================
  // Закрытие открытых позиций на продажу 
  //-------------------------------------------------------------------------------------------------------------------------
  if(ExistPositions(NULL, OP_SELL, Magic, 0) == true) //если открыта позиция sell
  {
    if() // условие на закритие 
    {
      ClosePosFirstProfit(NULL, OP_SELL, Magic); //закрываем позицию
    }
  } 


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.03.2008                                                     |
//|  Описание : Возвращает флаг существования позиций                          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия  : 19.02.2008                                                      |
//|  Описание: Закрытие одной предварительно выбранной позиции                 |
//+----------------------------------------------------------------------------+
void ClosePosBySelect() {
  bool   fc;
  color  clClose;
  double ll, pa, pb, pp;
  int    dg=MarketInfo(OrderSymbol(), MODE_DIGITS), err, it;

  if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
    for (it=1; it<=NumberOfTry; it++) {
      if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) //break;
      while (!IsTradeAllowed()) Sleep(5000);
      RefreshRates();
      pa=MarketInfo(OrderSymbol(), MODE_ASK);
      pb=MarketInfo(OrderSymbol(), MODE_BID);
      if (OrderType()==OP_BUY) {
        pp=pb; clClose=clCloseBuy;
      } else {
        pp=pa; clClose=clCloseSell;
      }
      ll=OrderLots();
      pp=NormalizeDouble(pp, dg);
      fc=OrderClose(OrderTicket(), ll, pp, Slippage, clClose);
      if (fc) {
        if (UseSound) PlaySound(SoundSuccess); //break;
      } else {
        err=GetLastError();
        if (UseSound) PlaySound(SoundError);
        if (err==146) while (IsTradeContextBusy()) Sleep(1000*11);
        Print("Error(",err,") Close ",GetNameOP(OrderType())," ",
              ErrorDescription(err),", try ",it);
        Print(OrderTicket(),"  Ask=",pa,"  Bid=",pb,"  pp=",pp);
        Print("sy=",OrderSymbol(),"  ll=",ll,"  sl=",OrderStopLoss(),
              "  tp=",OrderTakeProfit(),"  mn=",OrderMagicNumber());
        Sleep(1000*5);
      }
    }
  } else Print("Некорректная торговая операция. Close ",GetNameOP(OrderType()));
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Закрытие позиций по рыночной цене сначала прибыльных           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
void ClosePosFirstProfit(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal();
  if (sy=="0") sy=Symbol();

  // Сначала закрываем прибыльные позиции
  for (i=k-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (OrderProfit()+OrderCommission()+OrderSwap()>0) ClosePosBySelect();
          }
        }
      }
    }
  }
  // Потом все остальные
  k=OrdersTotal();
  for (i=k-1; i>=0; i--) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) ClosePosBySelect();
        }
      }
    }
  }
}
 
 
belous:
Guten Tag. Ich habe eine Frage an Sie.... Ich gehe mit der Stochastik ein (5,14,3) und verlasse die Stochastik nur mit einer anderen Periode (5,3,3). Ich verstehe nicht, wie ich Stochastik für den Ausgang, aber nicht die Rückkehr Signal verwenden können?

Imho würde ich kein Array von zu schließenden Tickets erstellen, sondern in der Aufzählungsschleife für Marktaufträge jeden Auftrag prüfen, indem ich sein Ticket in den Eingang der Schließfunktion mit einer Prüfung der möglichen Bedingungen einspeise.

 
Kann das Gebot zu jedem Zeitpunkt 0 sein?
 
YOUNGA:
Kann das Gebot zu jedem Zeitpunkt 0 sein?
Ist es schwer zu kontrollieren oder zu faul? Es ist einfacher, die Frage zu stellen. Kann der Angebotspreis gleich Null sein? Es kann, wenn nichts verkauft wird8-(
 
drknn:

Die Formulierung ist sehr gut. Was der Fragesteller wissen möchte...


Es gibt Skripte, die gleichzeitig den Verkauf eines Symbols und den Kauf eines anderen eröffnen.

Ich bin an einem Skript interessiert, das gleichzeitig einen Verkauf/Kauf für 7-10 Symbole mit einem für jedes Symbol festgelegten Volumen zu aktuellen Preisen eröffnen kann.

Beispiel:

EURUSD 1 verkaufen

GBPUSD 1,5 kaufen

verkaufen USDCAD 1,2

AUDUSD kaufen 1,1

NZDUSD kaufen 2

USDCHF 3 kaufen

Das MultiOrders-Skript ist fast perfekt, es gibt nur 5 Felder für die Symbole.

Grund der Beschwerde: