Est-il possible d'arrêter/démarrer l'autotrading sur l'ensemble du terminal ou sur un Expert Advisor individuel, par exemple, en fonction d'un certain indicateur ?
Andrey Sokolov: Peut-on désactiver/arrêter l'autotrading sur l'ensemble du terminal ou sur un EA individuel, par exemple, en fonction des données d'un indicateur ?
Vous pouvez utiliser les variables globales du terminal, prescrire le même GP pour tous et surveiller la valeur, par exemple, lorsqu'elle est égale à 0 - tous les EA ne traitent pas.
Vous pouvez également utiliser l'interface WinAPI pour trouver le bouton Auto-trading sur le panneau du terminal et appuyer dessus.
Bonjour, existe-t-il un code pour afficher un texte sur un graphique (autocollant, rappel) qui ne bouge pas avec le graphique mais qui est fixe ? Merci !
Vladimir.Tyumen: Bonjour, existe-t-il un code pour afficher un texte sur un graphique (autocollant, rappel) qui ne bouge pas avec le graphique mais qui est fixe ? Merci !
Bonjour à tous, je viens de commencer à apprendre le langage, je suis récemment tombé sur un tutoriel vidéo sur la création d'une grille EA, j'ai écrit, compilé, 0 erreur, 0 avertissement. Mais je ne peux pas voir mon robot ouvrir des trades, je veux demander à qui n'est pas trop paresseux))))
Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Je veux utiliser les deux.
Voznesen:
Bonjour à tous, je viens de commencer à apprendre le langage, je suis récemment tombé sur un tutoriel vidéo sur la façon de créer une grille EA, j'ai écrit, compilé, 0 erreur, 0 avertissement. Mais le robot n'ouvre pas de trades. Je mets le code en circulation pour voir si quelqu'un est paresseux))))
Comment doit-elle ouvrir les marchés ? À quelles conditions ?
Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Idéalement, ils devraient être combinés.
Travailler avec des indicateurs personnalisés connectés en tant que ressources
Pour le travail des programmes mql4 vous pouvez avoir besoin d'un ou plusieurs indicateurs personnalisés, tous peuvent être inclus dans le code du programme mql4 exécutable. L'inclusion d'indicateurs en tant que ressources permet de simplifier la distribution du programme.
Le seul problème est qu'il ne compilera pas sur un autre ordinateur s'il n'y a pas de fichiers include sur celui-ci.
Pouvez-vous m'en dire plus sur le signal, est-il émis par MT ou par un tiers ?
Merci pour l'aide, c'est réparé.
Peut-on désactiver/arrêter l'autotrading sur l'ensemble du terminal ou sur un EA individuel, par exemple, en fonction des données d'un indicateur ?
Vous pouvez utiliser les variables globales du terminal, prescrire le même GP pour tous et surveiller la valeur, par exemple, lorsqu'elle est égale à 0 - tous les EA ne traitent pas.
Vous pouvez également utiliser l'interface WinAPI pour trouver le bouton Auto-trading sur le panneau du terminal et appuyer dessus.
Bonjour, existe-t-il un code pour afficher un texte sur un graphique (autocollant, rappel) qui ne bouge pas avec le graphique mais qui est fixe ? Merci !
Merci d'avance !
extern double Lots = 0.1;
extern double Profit = 50;
extern int Step = 30;
extern int Magic = 6677;
extern int Slippage = 5;
extern int maPeriod =100;
extern int maShift =1;
double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit()
{
if (Digits == 3 || Digits == 5)
{
Step *= 10;
Slippage *= 10;
}
return(INIT_SUCCEEDED);
}
//---------------------------------------------
void OnDeinit(const int reason)
{
}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick()
{
ma = iMA(Symbol(),0,maPeriod, maShift, MODE_SMA, PRICE_CLOSE, 0);
if (CountBuy() && CountSell() == 0 && Bid < ma)//
{
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
Print ("Неудалось открыть ордер на Продажу");
}
if (CountBuy() && CountSell() == 0 && Ask < ma)
{
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
Print ("Неудалось открыть ордер на Покупку");
}
if (CountBuy() >=1)
{
price = FindLastBuyPrice();
if ((price - Ask) >= Step*Point)
{
if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
Print ("Неудалось открыть ордер на Покупку");
}
}
if (CountSell() >=1)
{
price = FindLastBuyPrice();
if ((Bid - price) >= Step*Point)
{
if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
Print ("Неудалось открыть ордер на Ппродажу");
}
}
double op = CalculateProfit();
if (op >= Profit)
{
CloseAll();
}
}
//------------------------------------------------------------------
void CloseAll()
{
for (int i = OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
{
if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))
{
Print ("Не удалось закрыть ордер на ПОКУПКУ");
}
}
if (OrderType() == OP_SELL)
{
if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))
{
Print ("Не удалось закрыть ордер на ПРОДАЖУ");
}
}
}
}
}
}
//------------------------------------------------------------------
double CalculateProfit() // Считаем профит по всем ордерам
{
double oProfit = 0;
for (int i=OrdersTotal() -1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
oProfit += OrderProfit();
}
}
}
}
return(oProfit);
}
//------------------------------------------------------------------
double FindLastBuyPrice()
{
int oldTicket, ticket = 0;
double oldopenPrice = 0;
for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
{
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
{
oldTicket = OrderTicket();
if (oldTicket > ticket)
{
ticket = oldTicket;
oldopenPrice = OrderOpenPrice();
}
}
}
}
return(oldopenPrice);
}
double FindLastSellPrice()
{
int oldTicket, ticket = 0;
double oldopenPrice = 0;
for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
{
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
{
oldTicket = OrderTicket();
if (oldTicket > ticket)
{
ticket = oldTicket;
oldopenPrice = OrderOpenPrice();
}
}
}
}
return(oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade >=0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade >=0; trade--)
{
if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
Bonjour à tous. Voici une question :
J'ai un indicateur avec une bibliothèque et je dois écrire un conseiller expert pour celui-ci.
Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Je veux utiliser les deux.
Bonjour à tous. Voici une question :
J'ai un indicateur avec une bibliothèque et je dois écrire un conseiller expert pour celui-ci.
Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Idéalement, ils devraient être combinés.
Travailler avec des indicateurs personnalisés connectés en tant que ressources
Pour le travail des programmes mql4 vous pouvez avoir besoin d'un ou plusieurs indicateurs personnalisés, tous peuvent être inclus dans le code du programme mql4 exécutable. L'inclusion d'indicateurs en tant que ressources permet de simplifier la distribution du programme.