Voici les merveilles du test d'un programme EA dans MT5 (voir fichier image)... Un EA peut-il être positif avec un solde négatif ? et quand le solde est-il négatif ? Avant de me tourner vers Trading Nation, j'ai beaucoup changé d'avis et je ne l'ai jamais fait... Je pense qu'il est temps de dormir un peu)
Si quelqu'un est intéressé par le code ouvert et l'ensemble, faites-le moi savoir ? - Je vais certainement l'afficher. J'ai commencé à maîtriser MT5 avec la couverture et maintenant, - miracles, cependant)
Pas de miracles. J'ai une position ouverte avec un excédent important et une position fermée avec une perte dépassant mon solde. Je ne perds pas car j'ai suffisamment de fonds pour maintenir une position ouverte.
Artyom Trishkin: Il n'y a pas de miracles. Il y a des positions ouvertes avec un grand excédent, et il y a une position fermée avec une perte supérieure à la taille du bilan. Il n'y a pas d'inconvénient car il y a suffisamment de fonds pour maintenir les positions ouvertes.
Si je ferme comme avant, à l'opposé, il sera laqué ;))
J'ai déjà tout essayé, mais l'erreur persiste 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request].
Quels sont les champs à remplir et ceux à ne pas remplir ? Je suppose que cela n'a pas d'importance si la position ouverte est courte ou longue.
//+------------------------------------------------------------------+//| Закрытие позиции по типу |//+------------------------------------------------------------------+void PositionClose(double lot, int P_type,long id)
{
Print("Вход в функцию Закрытие позиции по типу !");
ZeroMemory(mrequest); ZeroMemory(mresult); // обнуляем значения mrequest, mresult//--- Получить текущее значение котировки в структуру типа MqlTickif(!SymbolInfoTick(_Symbol,latest_price))
{
Alert("Ошибка получения последних котировок - ошибка:",GetLastError(),"!!");
return;
}
//--- формируем торговый запрос
mrequest.action = TRADE_ACTION_CLOSE_BY; // закрыть позицию встречной
mrequest.order = id;
// mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение// mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена ask// mrequest.sl = 0; // Stop Loss// mrequest.tp = 0; // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = lot; // количество лотов для торговли// mrequest.magic = MAGIC; // Magic Number// if (P_type == 0) mrequest.type = ORDER_TYPE_SELL; // проверяем тип позиции// if (P_type == 1) mrequest.type = ORDER_TYPE_BUY;
mrequest.type = ORDER_TYPE_CLOSE_BY;
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=10; // проскальзывание от текущей ценыif( OrderSend(mrequest,mresult)>0) // если значение отосланного ордера не ноль, то
{ if(mresult.retcode==10009 || mresult.retcode==10008)
Print(" позиция закрыта !");
} else {
Print(ResultRetcodeDescription(mresult.retcode));
return;
}
}
Je teste un conseiller expert multi-devises et je voudrais voir dans le visualiseur toutes les fenêtres de toutes les paires de devises qui sont négociées.
Dans l'aide du visualiseur, il est question d'une commande "Chart" dans la section "View" du menu principal du visualiseur, qui semble être utilisée pour ouvrir de nouveaux graphiques. Mais pour une raison quelconque, je n'ai pas du tout la commande "Chart" et, par conséquent, je ne peux pas ouvrir les graphiques de paires supplémentaires. Quel est le problème ici ?
Si je ferme comme avant, à l'opposé, il sera laqué ;))
J'ai déjà tout essayé, mais l'erreur persiste 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request].
Quels sont les champs à remplir et ceux à ne pas remplir ? D'après ce que j'ai compris, il importe peu que la position soit longue ou courte.
Utilisez un code minimal - utilisez la bibliothèque standard :
ES 009:12:21.189 Trade 2016.04.1400:00:30 instant sell 0.01 EURUSD at 1.12728 (1.12728 / 1.12736 / 1.12728)
IL 009:12:21.189 Trades 2016.04.1400:00:30 deal #2 sell 0.01 EURUSD at 1.12728 done (based on order #2)
OP 009:12:21.189 Trade 2016.04.1400:00:30 deal performed [#2 sell 0.01 EURUSD at 1.12728]
NF 009:12:21.189 Trade 2016.04.1400:00:30 order performed sell 0.01 at 1.12728 [#2 sell 0.01 EURUSD at 1.12728]
GJ 009:12:21.192 TestEA (EURUSD,H1) 2016.04.1400:00:30 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.12728 [done at 1.12728]
KH 009:12:21.192 Trade 2016.04.1400:00:31 instant buy 0.02 EURUSD at 1.12736 (1.12728 / 1.12736 / 1.12728)
OD 009:12:21.192 Trades 2016.04.1400:00:31 deal #3 buy 0.02 EURUSD at 1.12736 done (based on order #3)
GI 009:12:21.193 Trade 2016.04.1400:00:31 deal performed [#3 buy 0.02 EURUSD at 1.12736]
LM 009:12:21.193 Trade 2016.04.1400:00:31 order performed buy 0.02 at 1.12736 [#3 buy 0.02 EURUSD at 1.12736]
NS 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:31 CTrade::OrderSend: instant buy 0.02 EURUSD at 1.12736 [done at 1.12736]
OP 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:32 Вход в функцию Закрытие позиции по типу !
GI 009:12:21.193 Trade 2016.04.1400:00:32 close position #2 sell 0.01 EURUSD by position #3 buy 0.02 EURUSD (1.12728 / 1.12736 / 1.12728)
OM 009:12:21.193 Trades 2016.04.1400:00:32 deal #4 buy 0.01 EURUSD at 1.12736 done (based on order #4)
RK 009:12:21.193 Trades 2016.04.1400:00:32 deal #5 sell 0.01 EURUSD at 1.12728 done (based on order #4)
EF 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:32 CTrade::OrderSend: unknown action 10 [done]
EI 009:12:21.423 Trade 2016.04.1423:59:59 position closed due end of test at 1.12663 [#3 buy 0.01 EURUSD 1.12736]
JG 009:12:21.423 Trades 2016.04.1423:59:59 deal #6 sell 0.01 EURUSD at 1.12663 done (based on order #5)
HN 009:12:21.423 Trade 2016.04.1423:59:59 deal performed [#6 sell 0.01 EURUSD at 1.12663]
IS 009:12:21.423 Trade 2016.04.1423:59:59 order performed sell 0.01 at 1.12663 [#5 sell 0.01 EURUSD at 1.12663]
Voici les merveilles du test d'un programme EA dans MT5 (voir fichier image)... Un EA peut-il être positif avec un solde négatif ? et quand le solde est-il négatif ? Avant de me tourner vers Trading Nation, j'ai beaucoup changé d'avis et je ne l'ai jamais fait... Je pense qu'il est temps de dormir un peu)
Si quelqu'un est intéressé par le code ouvert et l'ensemble, faites-le moi savoir ? - Je vais certainement l'afficher. J'ai commencé à maîtriser MT5 avec la couverture et maintenant, - miracles, cependant)
Il n'y a pas de miracles. Il y a des positions ouvertes avec un grand excédent, et il y a une position fermée avec une perte supérieure à la taille du bilan. Il n'y a pas d'inconvénient car il y a suffisamment de fonds pour maintenir les positions ouvertes.
Pouvez-vous me dire quelle est mon erreur ?
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);
La date du tableau OpenSellTime n'est pas imprimée et non la deuxième partie de l'expression - PriceOpenSell.
Et je n'arrive pas à trouver les commandesprintf comme%G et%d.
Bon après-midi à tous)
C'est une question pour un idiot de la programmation...
J'essaye de compiler un EA pour une nouvelle construction. Le compilateur me donne beaucoup d'erreurs différentes...
Voici l'un d'entre eux
if(oppositedelete){delete( OP_SELLSTOP) ;delete( OP_SELLLIMIT);}
Il y a 2 erreurs marquées en rouge dans ce fragment de code :'(' - pointeur d' objet attendu
Après avoir lu un peu sur le sujet de l'erreur, j'ai compris que le nom est réservé et que je dois le remplacer...
La question est donc de savoir par quoi le remplacer.
Bon après-midi à tous)
C'est une question pour un idiot de la programmation...
J'essaye de compiler un EA pour une nouvelle construction. Le compilateur me donne beaucoup d'erreurs différentes...
Voici l'un d'entre eux
if(oppositedelete){delete( OP_SELLSTOP) ;delete( OP_SELLLIMIT);}
Il y a 2 erreurs marquées en rouge dans ce fragment de code :'(' - pointeur d'objet attendu
Après avoir lu un peu sur le sujet de l'erreur, j'ai compris que le nom est réservé et que je dois le remplacer...
La question est donc de savoir par quoi le remplacer.
Il y a cette ligne dans le code
Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);
Pourquoi est-ce que j'obtiens ce texte dans la sortie :
OpenSellTime - 2015.12.01 11:15
où " ;" et la deuxième partie est"PriceOpenSell" ?
Il y a cette ligne dans le code
Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);
Pourquoi est-ce que j'obtiens ce texte dans la sortie :
OpenSellTime - 2015.12.01 11:15
où se trouve le " ;" et la deuxième partie"PriceOpenSell" ?
supprimé " ;" - travaillé.
La question sur printf reste posée...
Comment envoyer correctement une demande de clôture d'une contre -position ?
Si je ferme comme avant, à l'opposé, il sera laqué ;))
J'ai déjà tout essayé, mais l'erreur persiste 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request].
Quels sont les champs à remplir et ceux à ne pas remplir ? Je suppose que cela n'a pas d'importance si la position ouverte est courte ou longue.
Bonjour, Question sur le testeur.
Je teste un conseiller expert multi-devises et je voudrais voir dans le visualiseur toutes les fenêtres de toutes les paires de devises qui sont négociées.
Dans l'aide du visualiseur, il est question d'une commande "Chart" dans la section "View" du menu principal du visualiseur, qui semble être utilisée pour ouvrir de nouveaux graphiques. Mais pour une raison quelconque, je n'ai pas du tout la commande "Chart" et, par conséquent, je ne peux pas ouvrir les graphiques de paires supplémentaires. Quel est le problème ici ?
Comment envoyer correctement une demande de clôture d'une contre -position ?
Si je ferme comme avant, à l'opposé, il sera laqué ;))
J'ai déjà tout essayé, mais l'erreur persiste 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [Invalid request].
Quels sont les champs à remplir et ceux à ne pas remplir ? D'après ce que j'ai compris, il importe peu que la position soit longue ou courte.
Utilisez un code minimal - utilisez la bibliothèque standard :
Journal de l'agent :