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

 
pavlicos:

Aidez qui peut. Conseiller expert en deux devises,

Si les conditions de transaction sont les mêmes, alors la transaction dans la première devise est ouverte.

Comment rédiger le "Si l'ordre est ouvert dans la première devise OP_BUY, puis ouvrir une transaction dans la seconde OP_SELL

voici un exemple

si (OrdersTotal()== 1 ) // avec cette ligne pour 2 devises ouvre les deux ordres d'ACHAT et de VENTE ou 2 ordres de VENTE

if ( currenttype == OP_BUY ) // il ne s'ouvre pas du tout

if ( currentticket == 1) // il ne s'ouvre pas non plus comme ça.

secondticket = OrderSend("GBPUSD", OP_SELL, Lots, MarketInfo("GBPUSD", MODE_BID), 2, 0, 0, 0, WindowExpertName(), 0, 0, Red) ; //Ordre pour 2 devises

si ( c - d > a) // si la condition de transaction est remplie, l'ordre pour 1devise s'ouvre parfaitement.

currentticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "macd sample",Magic,0,Green) ; //Commande sur 1currency

Avez-vous vérifié les instruments pour lesquels la position est ouverte?
 
Je l'ai essayémaisil ne s'ouvre pasdans 2 devises.
 
evillive:
Le prix est là, l'ordre en attente à ce prix a disparu, et l'ordre au marché à ce prix est apparu. De plus, il arrive qu'une entrée apparaisse dans le commentaire, quelque chose comme "from ticket xxxx", où xxxx est le numéro de ticket de l'ordre en attente.
Yep, je l'ai. Merci.
 
int i;
ArraySetAsSeries(ExtMacdBuffer,true);
ArraySetAsSeries(Value,true);
for(i=0;;i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                 iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
ArrayCopy(Value,ExtMacdBuffer,0,0,WHOLE_ARRAY);

Bonsoir à tous, aidez-moi, je veux copier les données dutableau ExtMacdBuffer[] qui est la différence entre la valeur EMA courte et longue dans le tableau Value [], j'ai écrit ci-dessus et rien ne se passe, que manque-t-il ? Peut-être que ce n'est pas correct du tout ?

Merci d'avance pour votre aide.

 
Megagrider:
Ici, vous pouvez tout voir (regardez la fin elle-même).
Essayer l'égalité si(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) une des deux valeurs si elle est égale alors ....
 
Pokrov:
Essayer l'égalité en mettant if(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) l'une des deux valeurs si elle est égale alors .....
Vous avez lu les cartes ou vous avez lu le marc de café ?
 
Ça ne marche pas... :(
 
Megagrider:
Ça ne marche pas... :(
Ça ne devrait pas marcher non plus. Vous devez réfléchir avant d'essayer. J'ai vu votre question, mais je n'ai pas remarqué d'erreurs, c'est pourquoi je n'ai rien dit. Essayez d'attribuer des valeurs aux variables RSI et mettez-les en commentaires pour plus de clarté. Et utiliser ces variables dans la vérification des conditions.
 
AlexeyVik:
Et ça ne devrait pas marcher. Vous devez réfléchir avant de l'essayer. J'ai vu votre question, mais je n'ai pas remarqué d'erreurs, c'est pourquoi je n'ai rien dit. Essayez d'attribuer des valeurs RSI aux variables et mettez-les dans le commentaire pour plus de clarté. Et utiliser ces variables dans les contrôles de condition.
Je ne sais pas pourquoi je l'ai mal dit, c'est parce que j'ai manqué de préparation technique, mais le signal atteint 70, ça marche, pas au dessus de 70, peut-être que tu devrais écrire égalité == , mais pas = , c'est une erreur, je suis d'accord. Et au lieu de raisonner sur le café et les cartes, tu ferais mieux d'aider avec les tableaux.
 
Les variables seront affichées dans le commentaire du graphique et vous pourrez voir comment elles changent. Et la valeur de l'indicateur peut être égale à la valeur fixée si rarement que vous attendrez cet événement. Il a donc été écrit correctement à l'origine, si la première barre est inférieure à < 70 et que la barre zéro est supérieure/égale à >=, alors un crossover s'est produit.
Raison: