Wer kann mit dem Roboter helfen, warum funktioniert er nicht? - Seite 6 1234567 Neuer Kommentar [Gelöscht] 2016.02.16 19:33 #51 Was ist also der Fehler, zeigen Sie es mir wenigstens? [Gelöscht] 2016.02.16 19:36 #52 hier ist meine Funktion für mt4 ecn, ndd, stp ...Nicht ein einziger Fehler in einem Jahr//+----------------------------------------------------------------------------+//| Bestellungseröffnungsfunktion (BeerGod) |//+----------------------------------------------------------------------------+//| Parameter: |//| sy - Name des Instruments ("" - aktuelles Symbol) |//| op - Vorgang || //| ll - lot |//| sl - Stopp-Level |//| tp - take level |//| mn - MagicNumber |//+----------------------------------------------------------------------------+bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0){double MinLl = MarketInfo(Symbol(),MODE_MINLOT);double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT);ll = NormalizeDouble(ll,2);wenn (ll < MinLl) ll = MinLl; sonst ll = ll;wenn (ll > MaxLl) ll = MaxLl; sonst ll = ll;if (op == 0) // BUY opening{// Prüfen, ob freie Mittel verfügbar sindif((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134)){Print(sy," ",ll," Es ist unmöglich, die Bestellung Buy zu öffnen, nicht genug Geld.");zurück(0);}RefreshRates();// Bestellung öffnenint ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);if(ticketbuy<0)Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());sonstPrint(sy," OpenPosition. OrderSend Buy erfolgreich");// Schlafen (Pause);// Ändern Sie den Auftrag (setzen Sie Take Profit und Stop Loss)wenn (sl !=0 || tp !=0){//--- Berechnete SL- und TP-Preise müssen normalisiert werdendouble BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));//--- Wenn der Eingabewert Null ist, wird der Änderungspreis durch Null ersetztwenn (sl == 0) BSLoss = 0;wenn (tp == 0) BTProfit = 0;bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);if(!resbuy)Print(sy," OpenPosition. OrderModify Buy fehlgeschlagen #",GetLastError());sonstPrint(sy," OpenPosition. OrderModify Buy erfolgreich");}}if (op == 1) // Open Sell.{// Prüfen Sie die Verfügbarkeit von freien Mittelnif((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134)){Print(sy," ",ll," Es ist unmöglich, die Bestellung Sell zu öffnen, nicht genug Geld.");zurück(0);}RefreshRates();// Bestellung öffnenint ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);if(ticketsell<0)Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());sonstPrint(sy," OpenPosition. OrderSend Sell erfolgreich");// Schlafen (Pause);// Ändern Sie den Auftrag (setzen Sie Take Profit und Stop Loss)wenn (sl !=0 || tp !=0){//--- Die berechneten SL- und TP-Preise müssen normalisiert werdendouble SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));//--- Wenn der Eingabewert Null ist, wird der Änderungspreis durch Null ersetztif (sl == 0) SSLoss = 0;wenn (tp == 0) STProfit = 0;bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);if(!ressell)Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());sonstPrint(sy," OpenPosition. OrderModify Sell erfolgreich");}}return(True);}//Ende Who can help with Fragen von Anfängern MQL4 Nur "Nützliche Funktionen von [Gelöscht] 2016.02.16 19:38 #53 P.S. Moderatoren, der Code kann nicht über die Schaltfläche eingefügt werden. Vladimir Karputov 2016.02.16 19:42 #54 Vladimir Zubov: P.S. Moderatoren, der Code kann nicht über die Schaltfläche eingefügt werden.Ich gebe kostenlose Online-Skype-Lektionen zum Einfügen von Code:) if (sl == 0) SSLoss = 0; [Gelöscht] 2016.02.16 19:45 #55 Karputov Vladimir: Ich gebe kostenlose Skype-Lektionen zum Einfügen von Code:)//+----------------------------------------------------------------------------+ //| Функция открытия ордера (BeerGod) | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - текущий символ) | //| op - операция | //| ll - лот | //| sl - уровень стоп | //| tp - уровень тейк | //| mn - MagicNumber | //+----------------------------------------------------------------------------+ bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0) { double MinLl = MarketInfo(Symbol(),MODE_MINLOT); double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT); ll = NormalizeDouble(ll,2); if (ll < MinLl) ll = MinLl; else ll = ll; if (ll > MaxLl) ll = MaxLl; else ll = ll; if (op == 0) // Открытие BUY { // Проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Buy, not enough money."); return(0); } RefreshRates(); // Открываем ордер int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor); if(ticketbuy<0) Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Buy successfully"); // Sleep (Pause); // Модифицируем ордер (выставляем тейкпрофит и стоплосс) if (sl !=0 || tp !=0) { //--- Вычисленные значения цен SL и TP должны быть нормализованы double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- Если входящие значения ноль то заменяем цену модификации на ноль if (sl == 0) BSLoss = 0; if (tp == 0) BTProfit = 0; bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor); if(!resbuy) Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Buy successfully"); } } if (op == 1) // Открытие Sell { // Проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Sell, not enough money."); return(0); } RefreshRates(); // Открываем ордер int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor); if(ticketsell<0) Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Sell successfully"); // Sleep (Pause); // Модифицируем ордер (выставляем тейкпрофит и стоплосс) if (sl !=0 || tp !=0) { //--- Вычисленные значения цен SL и TP должны быть нормализованы double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- Если входящие значения ноль то заменяем цену модификации на ноль if (sl == 0) SSLoss = 0; if (tp == 0) STProfit = 0; bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor); if(!ressell) Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Sell successfully"); } } return (True); } //End [Gelöscht] 2016.02.16 19:46 #56 Karputov Vladimir: Ich gebe kostenlose Skype-Lektionen zum Einfügen von Code:) Wenn ich nur den Code einfüge, ja, aber wenn ich mehr schreibe, verschwindet der Code [Gelöscht] 2016.02.16 20:04 #57 Es gibt irgendwo einen Fehler, bei der Berechnung von PHP & MQL, wenn Sie Assembler brauchen dann helfen. Sergey Gritsay 2016.02.17 06:54 #58 GIM: Ich danke Ihnen!Erledigt, wenn Sie Fragen zum Code schreiben haben, auch persönlich oder über Skype verfügbar Dateien: GIM.mq4 9 kb GIM 2016.02.17 12:38 #59 Sergey Gritsay: bereit, wenn Sie Fragen zum Code haben, mailen oder skypen Sie Alert kommt mit der Botschaft heraus: Keine Preise. Warten auf eine neue Zecke... Sergey Gritsay 2016.02.17 12:50 #60 GIM: Der Alert kommt mit der Botschaft: Kein Preis. Wir warten auf eine neue Zecke...Ich hatte ein Demokonto, das einwandfrei funktionierte, und eröffnete beim ersten Versuch einen Handel. Ich brauche mehr Details. 1234567 Neuer Kommentar
hier ist meine Funktion für mt4 ecn, ndd, stp ...
Nicht ein einziger Fehler in einem Jahr
//+----------------------------------------------------------------------------+
//| Bestellungseröffnungsfunktion (BeerGod) |
//+----------------------------------------------------------------------------+
//| Parameter: |
//| sy - Name des Instruments ("" - aktuelles Symbol) |
//| op - Vorgang |
| //| ll - lot |
//| sl - Stopp-Level |
//| tp - take level |
//| mn - MagicNumber |
//+----------------------------------------------------------------------------+
bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)
{
double MinLl = MarketInfo(Symbol(),MODE_MINLOT);
double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT);
ll = NormalizeDouble(ll,2);
wenn (ll < MinLl) ll = MinLl; sonst ll = ll;
wenn (ll > MaxLl) ll = MaxLl; sonst ll = ll;
if (op == 0) // BUY opening
{
// Prüfen, ob freie Mittel verfügbar sind
if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," Es ist unmöglich, die Bestellung Buy zu öffnen, nicht genug Geld.");
zurück(0);
}
RefreshRates();
// Bestellung öffnen
int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);
if(ticketbuy<0)
Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());
sonst
Print(sy," OpenPosition. OrderSend Buy erfolgreich");
// Schlafen (Pause);
// Ändern Sie den Auftrag (setzen Sie Take Profit und Stop Loss)
wenn (sl !=0 || tp !=0)
{
//--- Berechnete SL- und TP-Preise müssen normalisiert werden
double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
//--- Wenn der Eingabewert Null ist, wird der Änderungspreis durch Null ersetzt
wenn (sl == 0) BSLoss = 0;
wenn (tp == 0) BTProfit = 0;
bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);
if(!resbuy)
Print(sy," OpenPosition. OrderModify Buy fehlgeschlagen #",GetLastError());
sonst
Print(sy," OpenPosition. OrderModify Buy erfolgreich");
}
}
if (op == 1) // Open Sell.
{
// Prüfen Sie die Verfügbarkeit von freien Mitteln
if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," Es ist unmöglich, die Bestellung Sell zu öffnen, nicht genug Geld.");
zurück(0);
}
RefreshRates();
// Bestellung öffnen
int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);
if(ticketsell<0)
Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());
sonst
Print(sy," OpenPosition. OrderSend Sell erfolgreich");
// Schlafen (Pause);
// Ändern Sie den Auftrag (setzen Sie Take Profit und Stop Loss)
wenn (sl !=0 || tp !=0)
{
//--- Die berechneten SL- und TP-Preise müssen normalisiert werden
double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS))
double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
//--- Wenn der Eingabewert Null ist, wird der Änderungspreis durch Null ersetzt
if (sl == 0) SSLoss = 0;
wenn (tp == 0) STProfit = 0;
bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);
if(!ressell)
Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());
sonst
Print(sy," OpenPosition. OrderModify Sell erfolgreich");
}
}
return(True);
}
//Ende
P.S. Moderatoren, der Code kann nicht über die Schaltfläche eingefügt werden.
Ich gebe kostenlose Online-Skype-Lektionen zum Einfügen von Code:)
Ich gebe kostenlose Skype-Lektionen zum Einfügen von Code:)
Ich gebe kostenlose Skype-Lektionen zum Einfügen von Code:)
Ich danke Ihnen!
Erledigt, wenn Sie Fragen zum Code schreiben haben, auch persönlich oder über Skype verfügbar
bereit, wenn Sie Fragen zum Code haben, mailen oder skypen Sie
Der Alert kommt mit der Botschaft: Kein Preis. Wir warten auf eine neue Zecke...
Ich hatte ein Demokonto, das einwandfrei funktionierte, und eröffnete beim ersten Versuch einen Handel. Ich brauche mehr Details.