Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 619

 

Quelqu'un peut-il suggérer, installer le plugin GetTickerHistory dans MT-4, fonctionne, mais le téléchargement ne va pas, sur Windows 7 x64, est-il possible de télécharger les index externes d'une autre manière.

Merci d'avance.

 
001:
Il existe une fonction permettant de fermer une position par temps.

La position se ferme, mais donne l'erreur OrderClose 138 pour chaque position.

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1 : open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1 : OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1 : close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1 : open #2 sell 0.10 EURUSD à 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1 : OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1 : close #2 sell 0.10 EURUSD à 1.02660 au prix de 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1 : open #3 sell 0.10 EURUSD à 1.02860 ok

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1 : Erreur OrderClose 138 ,

Qu'est-ce que ça peut être ? Le plus intéressant est que tout fonctionne dans une autre EA.

Vous n'avez pas le traitement des codes de retour du serveur commercial. En d'autres termes, vous ne traitez pas les requêtes et le slippage ne manque que de 3 points :

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

Oh, et les petites choses :

Pour fermer dans une boucle inverse (sinon, il manquera) :

for(int i=OrdersTotal()-1; i>=0; i--)

La vérification doit être faite sur le type d'ordre, sinon il essaiera de fermer les ordres en cours également :

if(OrderType()>1) continue;
 
pu6ka:

Il existe une fonction appelée SetIndexDrawBegin(). Mais il a une particularité : il compte de gauche à droite. Quoi qu'il en soit, dans Init, définissez vous-même la ligne SetIndexDrawBegin(0, Bars-p), et voyez si cela correspond à vos besoins.
L'indicateur lit le dernier nombre de barres, il n'a aucun problème. J'ai besoin de faire une fenêtre du nombre de barres dans laquelle ces mouvements seraient comptés et avec chaque barre la fenêtre se déplacerait, excluant la dernière barre dans le dernier calcul, ajoutant une nouvelle. Quelque chose comme le lissage "iMAOnArray", mais le lissage ne convient pas car il produit la moyenne, et j'ai besoin de la somme.
 
artmedia70:

Vous n'avez aucun traitement des codes de retour du serveur commercial. En d'autres termes, vous ne traitez pas la requote, et le glissement de seulement 3 points est absent :

Oh, et les petites choses :

Fermez en boucle inversée (sinon, elle manquera) :

La vérification doit être faite sur le type d'ordre, sinon il essaiera de fermer les ordres en cours également :



Merci beaucoup ! Je vais l'essayer maintenant. Une dernière question. La requote dans le testeur est-elle pertinente ? Dans mon testeur, elle ne se ferme pas.
 
001:

Merci beaucoup ! Je vais essayer maintenant. Une dernière question. Le requota dans le testeur est-il pertinent ? Dans mon testeur, il ne ferme pas.
Ensuite, faites attention au prix indiqué dans l'ordre de négociation. Il sera fermé au prix de l'offre et vendu au prix de la demande. Il n'y a pas de vérification du type d'ordre et, par conséquent, pas de choix de prix - soit Ask, soit Bid.
 

Bonjour, j'ai téléchargé plusieurs indicateurs RSI multi-temporels presque identiques. Ils ont tous le même problème. J'ai configuré l'indicateur sur un graphique d' une échelle temporelle inférieure avec la valeur d'une échelle temporelle plus ancienne. Dans le testeur de stratégie, le rendu est bon sur les données déjà chargées, mais si je commence le test, il cesse de s'afficher. En outre, le signal est dessiné sur le graphique réel, mais sur chaque barre du graphique réel, les valeurs de la ligne de l'indicateur sont différentes. C'est-à-dire que le rendu des données déjà chargées est en escalier, mais le rendu est différent pour les données chargées en mode temps réel. Veuillez indiquer quelles modifications doivent être apportées pour que l'indicateur dessine le même escalier à la fois sur le graphique réel en mode temps réel et dans le testeur.

Le code de l'indicateur se trouve dans le fichier joint.

J'ai un très bon conseiller expert pour cet indicateur et je voudrais vous en remercier.

Dossiers :
mtf_rsi.mq4  3 kb
 
Bonjour, l'EA donne l'erreur 1 "No error but no result known" lors de la modification.Erreur 1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
Il n'y a aucun problème pour que l'indicateur lise le dernier nombre de barres. J'ai besoin de faire une fenêtre du nombre de barres dans laquelle ces mouvements seraient comptés et avec chaque barre la fenêtre se déplacerait, excluant la dernière barre dans le dernier calcul, ajoutant une nouvelle. Quelque chose comme le lissage "iMAOnArray", mais le lissage ne convient pas car il sort la moyenne, et j'ai besoin de la somme.

Lancez cet indicateur sur M1, au fur et à mesure que de nouvelles barres apparaissent, les lignes d'alligator à gauche "s'effacent". Vous en avez besoin ?

Dossiers :
 
Example2:
Bonjour, l'EA donne l'erreur 1 "No error but no result known" lors de la modification.

Il est fort probable que vous modifiez l'ancien prix qui est déjà prescrit dans la commande.
 
pu6ka:

Le plus probable est de modifier l'ancien prix qui est déjà prescrit dans le mandat.


Mais il y a une vérificationsi(OrderOpenPrice()!=ma2)

Raison: