Cela dépend de l'objectif de la mise à jour. Pourquoi ne pas simplement remplir le tableau ?
Quelle importance a l'objectif ? La question est de savoir pourquoi un événement aussi évident est si difficile à saisir, étant donné qu'il existe un grand nombre d'autres propriétés moins utilisées et nécessaires. Dans ce cas, l'objectif est la notification (alerte).
Quelle différence cela fait-il de savoir quelle est la cible ? La question est de savoir pourquoi un événement aussi évident est si difficile à saisir, alors qu'il existe de nombreuses autres propriétés moins utilisées et nécessaires. Dans ce cas, l'objectif est la notification (alerte).
C'est donc cet événement évident qui est mis en évidence dans le type de transaction. Essayez la bibliothèque de Trishkin dans 58 articles. Il y a peut-être une option simple.
Je soupçonne qu'il tient son registre de la même façon.
Изменение открытого ордера. К данным изменениям относятся не только явные изменения со стороны клиентского терминала или торгового сервера, но также и изменение его состояния при выставлении (например, переход из состоянияORDER_STATE_STARTED versORDER_STATE_PLACED ou deORDER_STATE_PLACED versORDER_STATE_PARTIAL, etc.)
Il me suffirait de savoir que ce n'est pas le premier ORDER_STATE_PLACED sur un ticket de commande particulier.
Il s'avère que deux TRADE_TRANSACTION_ORDER_UPDATE interviennent lorsque la première commande est passée. Ici, et le troisième me conviendrait déjà comme un changement, qui dans mon cas n'est qu'un changement de prix. Ou le secondORDER_STATE_PLACED.
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Suivi de l'exemple MT4 "STRINGS : ASCII CHARACTERS TABLE AND USE"
//+------------------------------------------------------------------+//| StringLowerCase |//+------------------------------------------------------------------+string StringLowerCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 64 && symbol < 91) || (symbol > 191 && symbol < 224))
s = StringSetChar(s, lenght, symbol + 32);// тут possible loss of data due to type conversionelseif(symbol > -65 && symbol < -32)
s = StringSetChar(s, lenght, symbol + 288);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
//+------------------------------------------------------------------+//| StringUpperCase |//+------------------------------------------------------------------+string StringUpperCase(string str)
{
string s = str;
int lenght = StringLen(str) - 1, symbol;
while(lenght >= 0)
{
symbol = StringGetChar(s, lenght);
if((symbol > 96 && symbol < 123) || (symbol > 223 && symbol < 256))
s = StringSetChar(s, lenght, symbol - 32);// тут possible loss of data due to type conversionelseif(symbol > -33 && symbol < 0)
s = StringSetChar(s, lenght, symbol + 224);// тут possible loss of data due to type conversion
lenght--;
}
return(s);
}
Si cela ne vous dérange pas, aidez-moi à le réparer...
Bonjour. J'ai écrit une fonction qui vérifie les conditions d'entrée dans une position.
Le problème est que si la condition (surlignée en jaune) n'est pas remplie, la fonction ne se termine pas mais passe à la condition suivante. Ainsi, le signal ne fonctionne pas correctement.
Que faut-il faire pour que la fonction cesse de fonctionner lorsque l'une des conditions n'est pas remplie - immédiatement après la condition incorrecte ?
bool BuySignal_new()
{
double Sig_Up[]; // динамический массив для хранения значений индикатора на покупку для каждого бараdouble Sig_Down[]; // динамический массив для хранения значений индикатора на продажу для каждого бараArraySetAsSeries (Sig_Up,true); // устанавливаем индексацию как в таймсерии ( т.е. 5,4,3,2,1,0) в динамич. массиве для индикатораArraySetAsSeries (Sig_Down,true); // устанавливаем индексацию как в таймсерии ( т.е. 5,4,3,2,1,0) в динамич. массиве для индикатораResetLastError();
double close = NormalizeDouble(iClose(_Symbol,_Period,1),Digits());
double close_1 = NormalizeDouble(iClose(_Symbol,_Period,0),Digits());
double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),Digits());
if(CopyBuffer(Handle_stepma_line,0,1,5,Sig_Up)==5 && CopyBuffer(Handle_stepma_line,1,1,4,Sig_Down)==4 )
{
Print("Данные скопированы. Ошибок нет.");
}
else
{
Print("Ошибка копирования. Нет данных");
return(false);
}
if (Sig_Up[1] < Sig_Down[1] && Sig_Up[0] > Sig_Down[0])
{
Print("условие 1 - ок");
}
else
{
Print("условие 1 НЕ выполненно");
return(false);
}
if (close < Sig_Up[1]&& Bid > Sig_Up[0])
{
Print ("условие 2 - ок");
return(true);
}
else
{
Print("условие 2 НЕ выполненно");
return(false);
}
Que faut-il faire pour que, si l'une des conditions de la fonction n'est pas remplie, l'ensemble de la fonction s'arrête immédiatement après la condition incorrecte ?
Supprimez le branchement par ailleurs, vous pouvez essayer de cette façon :
if(CopyBuffer(Handle_stepma_line, 0, 1, 5, Sig_Up) !=5)
{
Print("Ошибка копирования. Нет данных");
return(false);
}
if(CopyBuffer(Handle_stepma_line, 1, 1, 4, Sig_Down) !=4)
{
Print("Ошибка копирования. Нет данных");
return(false);
}
if(!(Sig_Up[1] < Sig_Down[1] && Sig_Up[0] > Sig_Down[0]))
{
Print("условие 1 НЕ выполненно");
return(false);
}
if (!(close < Sig_Up[1] && Bid > Sig_Up[0]))
{
Print("условие 2 НЕ выполненно");
return(false);
}
//--- если дошли сюда, то все условия выполненыreturn(true);
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Cela dépend de l'objectif de la mise à jour. Pourquoi ne pas simplement remplir le tableau ?
Quelle importance a l'objectif ? La question est de savoir pourquoi un événement aussi évident est si difficile à saisir, étant donné qu'il existe un grand nombre d'autres propriétés moins utilisées et nécessaires. Dans ce cas, l'objectif est la notification (alerte).
Quelle différence cela fait-il de savoir quelle est la cible ? La question est de savoir pourquoi un événement aussi évident est si difficile à saisir, alors qu'il existe de nombreuses autres propriétés moins utilisées et nécessaires. Dans ce cas, l'objectif est la notification (alerte).
C'est donc cet événement évident qui est mis en évidence dans le type de transaction. Essayez la bibliothèque de Trishkin dans 58 articles. Il y a peut-être une option simple.
в 58 ми статьяхEh bien, merci.)
Je soupçonne qu'il tient son registre de la même façon.
Il me suffirait de savoir que ce n'est pas le premier ORDER_STATE_PLACED sur un ticket de commande particulier.
Il s'avère que deux TRADE_TRANSACTION_ORDER_UPDATE interviennent lorsque la première commande est passée. Ici, et le troisième me conviendrait déjà comme un changement, qui dans mon cas n'est qu'un changement de prix. Ou le secondORDER_STATE_PLACED.
Si cela ne vous dérange pas, aidez-moi à le réparer...
J'ai fait l'exemple de MT4 "STRINGS : ASCII CHARACTERS TABLE AND HIS USE"
Si cela ne vous dérange pas, aidez-moi à le corriger...
StringSetChart() bool renvoie un bool. Et tu l'assignes à une variable de type chaîne... Si c'est la question.
Bonjour. J'ai écrit une fonction qui vérifie les conditions d'entrée dans une position.
Le problème est que si la condition (surlignée en jaune) n'est pas remplie, la fonction ne se termine pas mais passe à la condition suivante. Ainsi, le signal ne fonctionne pas correctement.
Que faut-il faire pour que la fonction cesse de fonctionner lorsque l'une des conditions n'est pas remplie - immédiatement après la condition incorrecte ?
Que faut-il faire pour que, si l'une des conditions de la fonction n'est pas remplie, l'ensemble de la fonction s'arrête immédiatement après la condition incorrecte ?
Supprimez le branchement par ailleurs, vous pouvez essayer de cette façon :
enlever le branchement par l'autre, vous pouvez essayer comme ça :
Merci, je vais essayer.