Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Le contrôle des limites du tableau en spécifiant une chaîne dans le code est très utile. Avant, c'était : divisez par zéro, et regardez où vous voulez. Et c'est encore pire si l'erreur n'est pas apparue.
Pourriez-vous donner un exemple de la manière de procéder ? Je n'ai rien trouvé sur cette fonctionnalité dans la documentation.
Exactement ! Vous n'avez pas besoin de faire quoi que ce soit maintenant. Ouvrez l'onglet "experts" et lisez les journaux. Si une erreur apparaît, vous verrez un message à ce sujet. Comme :
array out of range....... indiquant le numéro de ligne dans le code.
Ouvrez l'onglet "experts" et lisez les journaux.
Essayez de changer la casse de la première lettre du nom du script/indicateur. Je me suis déjà battu une fois aussi https://www.mql5.com/ru/forum/152533/page2#982156
P.S : bien, changez string en char[]
Réponds, Pavlik !
C'est bien pour toi Pavlik !
Votre code a fonctionné tout de suite !
Vous pouvez maintenant exécuter le
script !
Il reste à l'installer dans l'indicateur !
Votre code a été inséré dans l'indicateur !
il n'y a qu'un seul petit obstacle
l'indicateur ne veut pas reconnaître le nom
du script. J'ai écrit le nom à l'emplacement
d'où le script doit être appelé.
Il ne reste plus qu'à ce que le script soit
reconnu !
pouvez-vous m'aider ?
sincères salutations
punsa
Réponds, Pavlik !
Tu es génial, Pavlik !
votre code a fonctionné tout de suite !
vous pouvez maintenant exécuter le
le scénario !
Il reste à l'installer dans l'indicateur !
Votre code a été inséré dans l'indicateur !
il n'y a qu'un seul petit obstacle
l'indicateur ne veut pas reconnaître le nom
du script. J'ai écrit le nom à l'emplacement
d'où le script doit être appelé.
Il ne reste plus qu'à ce que le script soit
reconnu !
pouvez-vous m'aider ?
sincères salutations
Panza
Je vous aiderai si vous en avez besoin.
Je t'aiderai si tu as besoin d'aide.
Salut, Vinin !
merci beaucoup
pour avoir voulu aider !
Je vous envoie pour une vue d'ensemble de la façon dont la
appel au script du composteur
pansa
____________________________________
Bonjour Pavlik !
Je voudrais vous montrer un exemple
comment l'appel de scénario a été organisé
avec le composteur, maintenant ça ne marche pas.
pour examen
pansa
//+------------------------------------------------------------------+
//|sample_execute_script.mq4 |
//+------------------------------------------------------------------+
#import "user32.dll"
int RegisterWindowMessageA(string MessageName) ;
int PostMessageA(int hwnd, int msg, int wparam, string Name) ;
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo) ;
#import
int start()
{
int winHandle = WindowHandle( Symbol(), Period() ) ;
//
//
//
si( signal < 0 && trigl==vrai && acheter ==vrai ) {StartScript( winHandle, "SchliesenProfitOrders" ) ; }
//
//
//
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
int MessageNumber = RegisterWindowMessageA("MetaTrader4_Internal_Message") ;
PostMessageA(hWnd, MessageNumber, 16, ScriptName) ;
if (AutomaticallyAcceptDefaults) { ClearConfigDialog() ; }
}
void ClearConfigDialog()
{
Sleep(100) ;
keybd_event(13, 0, 0, 0) ;
}
//
//
//
retour(0) ;
Salut, Vinin !
merci beaucoup
pour avoir voulu aider !
Je vous envoie pour une vue d'ensemble de la façon dont la
appel au script du composteur
pansa
____________________________________
Bonjour Pavlik !
Je voudrais vous montrer un exemple
comment l'appel de scénario a été organisé
avec le composteur, maintenant ça ne marche pas.
pour examen
pansa
Est-ce vraiment difficile de cliquer sur le SRC et de coller le code? !
Cela devrait fonctionner correctement :
Et n'oubliez pas la casse de la première lettre du script, par exemple, si le script "test" ne commence pas, vous devriez essayer "Test".
Respectueusement, Pavlik ;))
Cela devrait fonctionner correctement :
Et n'oubliez pas la casse de la première lettre du script, par exemple, si le script"test" ne s'exécute pas, vous devez essayer "Test".
Salutations, Pavlik ))))
Bonjour Pavlik !
J'ai obtenu votre raffinement et
J'ai essayé de tout mettre dans l'indicateur
mais l'indicateur ne veut pas.
voyez ce que vous pouvez faire
pour que ça marche !
Panza
//+------------------------------------------------------------------+
//|AltrTREND_Signal.mq4 |
//| Copyright 2014, MetaQuotes Software Corp.
//|https://www.mql5.com ||
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|AltrTrend_Signal_v2_2_alert.mq4|
//|Ramdass - Conversion seulement|
//+------------------------------------------------------------------+
#property copyright "Auteur - OlegVS, GOODMAN"
#propriété stricte
#import "user32.dll"
int RegisterWindowMessageA(uchar &lParam[]) ;
int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]) ;
void keybd_event(int VirtualKey, int ScanCode, int Flags, int ExtraInfo) ;
#import
#property indicator_chart_window
#property indicator_buffers 2
#propriété indicator_color1 DeepSkyBlue
#property indicator_color2 OrangeRed
#property indicator_width1 1
#property indicator_width2 1
//---- paramètres d'entrée
extern bool Alert_message=true ;
extern int Time_alert_minutes=60 ; // ? ???? ? ???? ? ????????? ? ??? ? ?? ? 60 ? ????.
extern int K = 30 ;
extern double Kstop = 0.5 ;
extern inttern Kperiod = 150 ;
extern int PeriodADX = 7 ; //14 ;
extern int CountBars = 100 ;
//---- tampons
double val1[] ;
double val2[] ;
double AlertTime ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé|
//+------------------------------------------------------------------+
int init()
{
string short_name ;
//---- ligne d'indicateurs
IndicatorBuffers(1) ;
SetIndexStyle(0,DRAW_ARROW) ;
SetIndexArrow(0,241) ;
IndicatorBuffers(2) ;
SetIndexStyle(1,DRAW_ARROW) ;
SetIndexArrow(1,242) ;
SetIndexBuffer(0,val1) ;
SetIndexBuffer(1,val2) ;
si(CountBars>=Bars)
CountBars=Bars ;
SetIndexDrawBegin(0, Bars - CountBars + PeriodADX ) ;
SetIndexDrawBegin(1, Bars - CountBars + PeriodADX ) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2|
//+------------------------------------------------------------------+
int start()
{
int i, shift, counted_bars = IndicatorCounted() ;
//----
si(counted_bars<0) return(-1) ;
//----
int i1, i2, t_per ;
double Range, AvgRange, smin, smax, SsMax, SsMin, SSP, price ;
bool uptrend, old ;
//----
si(Bars <=PeriodADX+ 1)
retour(0) ;
//----
for(shift = CountBars - PeriodADX ; shift >= 0 ; shift--)
{
SSP = MathCeil(Kperiod / iADX(NULL, 0, PeriodADX , PRICE_CLOSE, MODE_MAIN, 1)) ;
Plage = 0 ;
AvgRange = 0 ;
for(i1 = shift ; i1 <= shift + SSP ; i1++)
{
AvgRange = AvgRange + MathAbs(High[i1] - Low[i1]) ;
}
Gamme = Gamme moyenne / (SSP + 1) ;
//----
SsMax = High[shift] ;
SsMin = Low[shift] ;
for(i2 = shift ; i2 <= shift + SSP - 1 ; i2++)
{
prix = High[i2] ;
si(SsMax < prix)
SsMax= prix ;
prix = Low[i2] ;
si(SsMin >= prix)
SsMin = prix ;
}
//----
smin = SsMin + (SsMax - SsMin)*K / 100 ;
smax = SsMax - (SsMax - SsMin)*K / 100 ;
val1[shift] = 0.0 ;
val2[shift] = 0.0 ;
si(Close[shift] < smin)
{
tendance à la hausse = faux ;
}
si(Close[shift] > smax)
{
tendance à la hausse = vrai ;
}
if(uptrend != old && uptrend == true)
{
val1[shift] = Low[shift] - Range*Kstop ;
}
si(uptrend != old && uptrend == false)
{
val2[shift] = High[shift] + Range*Kstop ;
}
ancien = tendance à la hausse ;
}
void StartScript(int hWnd, string ScriptName, bool AutomaticallyAcceptDefaults = false)
{
{
char buf[] ;
StringToCharArray("MetaTrader4_Internal_Message", buf ;)
int MT4InternalMsg = RegisterWindowMessageA(buf) ;
StringToCharArray("fPlayer", buf) ;
SendMessageA(hWnd, MT4InternalMsg, 16, buf) ;
if (AutomaticallyAcceptDefaults) { ClearConfigDialog() ; }
}
void ClearConfigDialog()
{
Sleep(100) ;
keybd_event(13, 0, 0, 0) ;
}
//---- Alerte
if (Period()<Time_alert_minutes) t_per=Period() ; else t_per=Time_alert_minutes ; // ? ??? ??<Time_alert, ? ???? ? ???? ? ????????? ? ??? ? ?? ? ? ?.
si (Alert_message==true && CurTime()>AlertTime && val1[0]!=0.0)
{
Alert(Symbol(), "+++ BUY ! !! +++" , "//AltrTrend_Signal_v2_2_alert ") ;
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60 ;
//PlaySound("payment.wav") ;
fPlayer ;//script
}
si (Alert_message==true && CurTime()>AlertTime && val2[0]!=0.0)
{
Alert(Symbol(), "+++ VENTE ! !!+++" , "//AltrTrend_Signal_v2_2_alert") ;
AlertTime=CurTime() + (t_per - MathMod(TimeMinute(CurTime()), t_per))*60 ;
// PlaySound("payment.wav") ;
fPlayer ;
}
retour(0) ;
}
//+------------------------------------------------------------------+