Yedelkin: Для каждого вида торгового запроса предусмотрены обязательные поля. Они должны быть заполнены. "Открытие позиции" или "Закрытие позиции" - это всего лишь результат выполнения конкретного торгового запроса, правила заполнения которого - одни и те же. Т.е. берите свой работающий вариант запроса "на открытие" и меняйте тип ордера. Ненужные обязательные поля заполняйте нулями.
sergeev:
Sie haben bereits eine Antwort erhalten!
Ich danke Ihnen!
Ich habe noch eine Frage: Die unten stehende Anfrage wird gesendet und eine Position wird eröffnet, aber der Stop und der Gewinn werden nicht gesetzt. Ich habe schon verschiedene Einstellungen ausprobiert, aber nichts hat geholfen. Was ist das Problem, was mache ich falsch?
MqlTick latest_price; // Будет использоваться для текущих котировокif(!SymbolInfoTick(_Symbol,latest_price)) return; // получить текущее значение котировки в структуру типа MqlTick
...
if(uBuy && opSell==false)
{
if(opBuy) return; // при наличии позиции не добавлять к открытой позиции на покупку
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена ask
mrequest.sl = NormalizeDouble(latest_price.ask - StopLoss*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TakeProfit*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = WorkLot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_BUY; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=Slippage; // проскальзывание от текущей ценыOrderSend(mrequest,mresult); // отсылаем ордерif(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Ордер Buy успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
return;
}
}
double summ=0;//переменная, в которую все суммируется
int w=0;//счетчик 3 удачных сумирований
int count_for_buf=0;//Счетчик переходов по буферу ZigZag
while (w<=3)
{
summ=summ+ZigzagBuffer[rates_total-count_for_buf];
count_for_buf++;
if (ZigzagBuffer[rates_total-count_for_buf]!=0)//Увеличиваем счетчик, если используемое значение индикатора не равно нулю
{
w++;
}
}
Auf diese Weise bleibt es aus irgendeinem Grund hängen oder etwas anderes passiert
WindSW: Die unten stehende Anfrage wird gesendet und eine Position wird eröffnet, aber es wird kein Stop und kein Gewinn gesetzt. Ich habe schon verschiedene Einstellungen ausprobiert, aber nichts hat geholfen. Was ist das Problem, was mache ich falsch?
Erinnern Sie sich daran, dass Handelsanfragen "zur Eröffnung einer Position" mehrere Optionen haben, die Sie ausfüllen können? Einige dieser Optionen beinhalten sl/tp, andere nicht. Mit anderen Worten: Welchen Handelsmodus hat Ihr Broker?
Erinnern Sie sich daran, dass Handelsanfragen "zur Eröffnung einer Position" mehrere Optionen haben, die Sie ausfüllen können? Einige dieser Optionen beinhalten sl/tp, andere nicht. Mit anderen Worten: Was ist der Handelsmodus Ihres Brokers?
Alpari-Makler. Im manuellen Modus wird nur ein neuer Auftrag in der Börsenausführung platziert. Es gibt keine andere Möglichkeit, in den Markt einzutreten. Mir ist bekannt, dass es sich um ein Ersuchen um Austauschausführung handelt. Danke, ich habe das Problem gelöst. Können Sie mir sagen, warum der Compiler den folgenden Code verarbeitet?
if(CopyBuffer(ema,0,0,3,emaVal)<0) return; // Kopieren der neuen Werte der Indikatorpuffer in Arrays
и
IndicatorRelease(ema);
Es erscheint eine Warnung "möglicher Datenverlust durch Typkonvertierung". Ich kann nicht herausfinden, was hier falsch ist, ich kann es seit gestern Abend nicht mehr reparieren.
WindSW: Können Sie mir sagen, warum der Compiler bei den folgenden Zeichenfolgen flucht:
if(CopyBuffer(ema,0,0,3,emaVal)<0) return; // neue Indikatorpufferwerte in Arrays kopieren
и
IndicatorRelease(ema);
Es erscheint eine Warnung "möglicher Datenverlust durch Typkonvertierung". Ich kann nicht herausfinden, was hier falsch ist, ich habe es seit gestern Abend nicht geschafft, das Problem zu beheben.
Auf diese Weise bleibt es aus irgendeinem Grund hängen oder etwas anderes passiert
Ich werde Ihnen einen Vorschlag machen:
double summ=0; //переменная, в которую все суммируетсяint w=0; //счетчик 3 удачных сумированийfor(int i=0; i<rates_total; i++)
{
if(ZigzagBuffer[rates_total]!=0 && w<3)//Увеличиваем счетчик, если используемое значение индикатора не равно нулю
{
summ+=ZigzagBuffer[i];
w++;
}
if(w>2) break;
}
Alle Optionen sind aufgeführt, außer dem Schließen. Deshalb frage ich.
wurde Ihnen bereits mitgeteilt.
Das "Schließen einer Position" ist lediglich das Ergebnis einer Handelsanfrage, für die dieselben Regeln gelten.
D.h. Sie nehmen den "offenen" Antrag und ändern die Auftragsart.
Füllen Sie die nicht benötigten Pflichtfelder mit Nullen aus.
Yedelkin:
sergeev:Для каждого вида торгового запроса предусмотрены обязательные поля. Они должны быть заполнены. "Открытие позиции" или "Закрытие позиции" - это всего лишь результат выполнения конкретного торгового запроса, правила заполнения которого - одни и те же. Т.е. берите свой работающий вариант запроса "на открытие" и меняйте тип ордера. Ненужные обязательные поля заполняйте нулями.
Sie haben bereits eine Antwort erhalten!
Ich danke Ihnen!
Ich habe noch eine Frage: Die unten stehende Anfrage wird gesendet und eine Position wird eröffnet, aber der Stop und der Gewinn werden nicht gesetzt. Ich habe schon verschiedene Einstellungen ausprobiert, aber nichts hat geholfen. Was ist das Problem, was mache ich falsch?
Wie addiere ich die letzten 3 ZigZag-Werte?
Auf diese Weise bleibt es aus irgendeinem Grund hängen oder etwas anderes passiertErinnern Sie sich daran, dass Handelsanfragen "zur Eröffnung einer Position" mehrere Optionen haben, die Sie ausfüllen können? Einige dieser Optionen beinhalten sl/tp, andere nicht. Mit anderen Worten: Welchen Handelsmodus hat Ihr Broker?
Erinnern Sie sich daran, dass Handelsanfragen "zur Eröffnung einer Position" mehrere Optionen haben, die Sie ausfüllen können? Einige dieser Optionen beinhalten sl/tp, andere nicht. Mit anderen Worten: Was ist der Handelsmodus Ihres Brokers?
Alpari-Makler. Im manuellen Modus wird nur ein neuer Auftrag in der Börsenausführung platziert. Es gibt keine andere Möglichkeit, in den Markt einzutreten. Mir ist bekannt, dass es sich um ein Ersuchen um Austauschausführung handelt. Danke, ich habe das Problem gelöst. Können Sie mir sagen, warum der Compiler den folgenden Code verarbeitet?
if(CopyBuffer(ema,0,0,3,emaVal)<0) return; // Kopieren der neuen Werte der Indikatorpuffer in Arrays
и
IndicatorRelease(ema);
Es erscheint eine Warnung "möglicher Datenverlust durch Typkonvertierung". Ich kann nicht herausfinden, was hier falsch ist, ich kann es seit gestern Abend nicht mehr reparieren.
if(CopyBuffer(ema,0,0,3,emaVal)<0) return; // neue Indikatorpufferwerte in Arrays kopieren
и
IndicatorRelease(ema);
Es erscheint eine Warnung "möglicher Datenverlust durch Typkonvertierung". Ich kann nicht herausfinden, was hier falsch ist, ich habe es seit gestern Abend nicht geschafft, das Problem zu beheben.
Welcher Typ von Variable ist ema?
Ich hab's. Stellen Sie fest, welcher Variablentyp zum Speichern von Indikator-Handles verwendet werden soll, und passen Sie ihn an.
Wie addiert man die letzten 3 ZigZag-Werte?
Auf diese Weise bleibt es aus irgendeinem Grund hängen oder etwas anderes passiertIch werde Ihnen einen Vorschlag machen: