[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 43
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
Alternativement, vous pouvez définir n'importe quel moment après l'arrivée du signal
Dans une variable globale, écrivez la valeur du temps au moment du signal :
puis comptez vos minutes (vous pouvez le faire) :
C'est l'une des solutions pour suivre le temps après un événement.
Malheureusement, cela ne fonctionne pas, après une minute, la ligne de support et la ligne de résistance devraient être dessinées comme une action, mais pour une raison quelconque, elles ne sont pas sur le graphique. Regardez le code, où se trouve l'erreur ?
bool Fact_2 = false; // Глобальная перемен для бай
bool Fact_3 = false; // Глобальная перемен для бай
double support;
double resist;
int timeFrame = 5;
int numBars = 15;
datetime gdt_TimeSignal;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll();
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//---------------------------------------------------------------------------
if (Fact_3==true) //Если событие уже..
//..было, то выходим
return(0);
//----
//---- БЛОК ОТКРЫТИЯ BUY--------------------------------------------------------------
if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true; // Произошло событие 1
//-
if (Fact_1 == true && Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
Fact_2 = true; // Произошло событие 2
//if (Signal) gdt_TimeSignal = TimeCurrent();
if (Fact_2) gdt_TimeSignal = TimeCurrent();
if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1)
{
//---- Открываете ордер
// OrderSend ();
//---------------------------------------------------------------------------------
{
// Определяем линии поддержки\сопротивления
support = 10000;
resist = 0;
for(int u = 1;u<=numBars;u++)
{
if(support>iLow(Symbol(),timeFrame,u))
support = iLow(Symbol(),timeFrame,u);
if(resist<iHigh(Symbol(),timeFrame,u))
resist = iHigh(Symbol(),timeFrame,u);
}
ObjectSet("lineSupport",OBJPROP_PRICE1,support);
ObjectSet("lineResist",OBJPROP_PRICE1,resist);
}
//----
{
ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
ObjectSet("lineResist",OBJPROP_COLOR,Red);
}
//-------------------------------------------------------------
gdt_TimeSignal = 0;
}
//что сюда добавить что бы линии появившись, оставались на месте?
//----
return(0);
}
Il y a des absurdités écrites ici :
Lisez à propos de iCustom().
Merci. Je l'ai lu. Je devrais peut-être chercher un exemple. Je ne comprends rien à rien.
S'il vous plaît, aidez-moi, dites-moi comment implémenter le code EA en deux ou trois lignes :
Lorsqu'un signal arrive (par exemple le croisement de deux MAs)
1. l'Expert Advisor détermine le temps du signal (en heures, minutes), le stocke ;
2. compte à rebours d'une minute.
Ensuite, le conseiller expert est prêt à effectuer une action (par exemple, ouvrir un ordre).Tous, MERCI, tout fonctionne comme il se doit, je n'ai juste pas inséré le signal de la bonne manière.
Je n'arrive pas à comprendre la publication de l'indicateur dans Codabase. Comme un statut est prêt pour la publication ie logiquement doivent attendre jusqu'à ce que le modérateur sera placé dans l'accès général cette dinde, mais il a été quelques jours et aucun résultat. Quel peut être le problème ?
ps. c'est ma première publication du code ici
Oui, je pense que oui ! J'ai vraiment pris le coup de main, je peux facilement me passer de l'écriture sur disque !
J'attache juste les rênes d'un terminal standard à un autre.
Je suis juste en train d'attacher les rênes d'un terminal standard pour un autre).
Pardonnez-moi, mais nous allons devoir le faire de toute façon.
car comme l'a dit Sir Freddie Mercury.
Le spectacle doit continuer !
Mettons les choses au clair.
Comme je le comprends :
1. Sur un compte, j'ai un nombre impressionnant de fenêtres ouvertes (10 pièces) avec n'importe quel ensemble de graphiques de paires de devises.
2. Sur chaque graphique se trouve un cheval de trait - un conseiller expert, qui fait quelque chose.
3. le compte doit répondre aux conditions suivantes :
3.1 Le nombre total d'ordres ouverts sur le marché dans le compte ne doit pas dépasser 5.
Les ordres de type cheval (en attente) ne devraient pas être comptés comme tels (je le pense, mais vous ne l'avez pas précisé).
3.2 Sur la base d'un ensemble de graphiques sur le compte, une certaine liste de symboles est formée,
Le type d'instruments financiers négociés et chacun des instruments ne peut avoir plus d'un ordre ouvert à tout moment.
à un moment donné, ne peut avoir plus d'un ordre ouvert.
---------------------------------------------------------
Quelque chose comme ça ! Vérifiez si tout est correct !
Alors dites-nous dans quelle langue cela doit être fait (comme mq4 ou mq5).
et la liste des instances pour lesquelles vous négociez - est-elle fixe ou différente à chaque fois ?
Je pense que cela devrait être un court collage dans le texte de chaque EA.
(que vous pouvez ensuite déposer comme une procédure si vous le souhaitez) lui permettra
décider des autorisations actuellement existantes pour toute action ...
Je voudrais prendre congé maintenant car il est 5 heures du matin :))
madzx
Merci de votre participation. Mais je ne pense pas que ce soit nécessaire.
Le problème a été résolu comme suit, comme l'a suggéré r772ra:
Ou peut-être comme ceci :
Et voici une fonctionNe vous égarez pas au milieu de nulle part. Vous pouvez effectuer des transactions d'exp pour des symboles magiques uniques (assignez votre ordre magique à VOS exp sur les symboles sélectionnés). Ensuite, en utilisant l'opérateur conditionnel if - else, vous reliez le filtre par des symboles et des symboles magiques, en utilisant cette fonction de Kim I.V. avec différentes valeurs d'entrée :
Fonction NumberOfOrders().
. C'est tout.
Merci, j'ai trouvé une solution plus simple.
Merci, une solution plus simple a été trouvée.
OK ! Merci d'avoir publié la solution.
Merci de votre participation. Mais je pense qu'il n'y a rien de plus.
Le problème a été résolu comme suit, comme l'a suggéré r772ra:
Ou peut-être comme ceci :
Et voici la fonctionOK ! Suivez la tendance et bonne chasse ! !!
madzx
Merci de votre participation. Mais je pense qu'il n'y a rien de plus.
Le problème a été résolu comme suit, comme l'a suggéré r772ra:
Ou peut-être comme ceci :
Et ici la fonctionSi vous êtes satisfait de cette solution, vous pouvez encore simplifier le code :
Mais c'est probablement mieux de l'écrire comme ça :
Si ce n'est pas "enfantin", alors il faut utiliser Magik (tôt ou tard, vous voudrez aussi ouvrir un ordre manuel ou placer un autre EA à proximité) :
Dans ce cas, tous les EAs doivent avoir le même Magik et n'oubliez pas d'utiliser des filtres sur le Magik et le symbole graphique lors des autres opérations avec la liste des ordres :
J'espère que vous avez déclaré la magik dans des variables externes, ou comme une constante :
#define Magic 555