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

 
Ekburg:

Et alors ? ! Est-ce que ça marche ? :)


Eh bien, oui. Vous pouvez le vérifier vous-même=) mettez le montant au-dessus de 700 dollars et testez-le=) Intervalle de 5 minutes

Vous pourriez aussi le modifier et le faire démarrer tout seul chaque nuit =)

 
SpikeOne:


Eh bien, oui. Vous pouvez le vérifier vous-même=) mettez le montant au-dessus de 700 dollars et testez-le=) Intervalle de 5 minutes

Vous pourriez aussi le modifier et le faire démarrer tout seul chaque nuit=)


Je vois))) Bonne chance alors dans la conquête des hauteurs rentables)).
 

Bonjour.

Si j'ai essayé de cette façon, j'ai eu un problème avec ça, mais je ne l'ai jamais trouvé... Si j'ai essayé de cette façon, l'ordre mettra la valeur de la barre précédente comme TakeProfit... J'ai essayé de différentes manières... L'ordre ne voit jamais la variable et la saute... En conséquence, TP est fixé à 0 ou 1 ou 2...

J'ai essayé tout ce qui m'est passé par la tête, mais ça ne marche pas. .... Le plus pas clair Si je remplace "TP =" par Print il écrit tout... Aidez un débutant.... Je vous en serai très reconnaissant.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue) ;

_______________________________________________________________________________________

pour (int i=1;i<=1;i++)

TP = ((High[i]- Low[i])*3) ;

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue) ;

____________________________________________________________________________________________

 
PaMyC:

Bonjour.

Si j'ai essayé de cette façon, j'ai eu un problème avec ça, mais je ne l'ai jamais trouvé... Si j'ai essayé de cette façon, l'ordre mettra la valeur de la barre précédente comme TakeProfit... J'ai essayé les deux façons... L'ordre ne voit jamais la variable et la saute... En conséquence, TP est fixé à 0 ou 1 ou 2...

J'ai essayé tout ce qui m'est venu à l'esprit, mais ça ne marche pas. .... Le plus pas clair Si je remplace "TP =" par Print il écrit tout... Aidez un débutant.... Je vous en serai très reconnaissant.

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, (Ask +((High[1]-Low[1])*3)*Point), "", 123, 0, Blue) ;

_______________________________________________________________________________________

pour (int i=1;i<=1;i++)

TP = ((High[i]- Low[i])*3) ;

OrderSend(Symbol(), OP_BUY, 0.1, Ask, 50, 0, Ask + TP*Point, "", 123, 0, Blue) ;

____________________________________________________________________________________________



Le thp dans OrderSend() n'est pas le nombre de points, mais le prix auquel l'ordre sera fermé, et lorsque vous définissez le thp, il est nécessaire de se souvenir du niveau de gel (chaque DTZ a ses propres problèmes).

pourrait être utile, merci Artem.

artmedia70 15.12.2013 22:34 #

Il y a aussi un StopLevel non comptabilisé. Si vous ne le savez pas, il peut être égal à zéro et alors il est calculé différemment. Chez Alpari, par exemple, il est toujours égal à zéro, mais il existe des limites et elles sont comptabilisées comme des écarts*2.

Donc, définissez d'abord le StopLevel :

Au niveau mondial :

int level=0, sp=0;

Puis dans start() :

   sp=MarketInfo(sy,MODE_SPREAD);
//-------------- Проверка StopLevel ---------------
   level=MarketInfo(sy,MODE_STOPLEVEL );           // Значение уровня установки стопов
   if (level==0) level=sp*2;

Et ensuite, comparez déjà la taille de l'ordre stop avec le niveau reçu et utilisez les valeurs correctes calculées pour les ordres stop :

//+----------------------------------------------------------------------------+
   double pa=MarketInfo(Symbol(),MODE_ASK),  // цена Ask
          pb=MarketInfo(Symbol(),MODE_BID),  // цена Bid
          sl=0, tp=0;
   if(OrderType()==OP_BUY) {
      sl=NormalizeDouble(MathMin(pb-StopLoss*Point,pb-(level+1)*Point),Digits);
      tp=NormalizeDouble(MathMax(pb+TakeProfit*Point,pb+(level+1)*Point),Digits);
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
   if(OrderType()==OP_SELL) {
      sl=NormalizeDouble(MathMax(pa+StopLoss*Point,pa+(level+1)*Point),Digits());
      tp=NormalizeDouble(MathMin(pa-TakeProfit*Point,pa-(level+1)*Point),Digits());
      // далее используем полученные уровни 
      // sl для цены StopLoss 
      // и tp для цены TakeProfit
      }
//+----------------------------------------------------------------------------+

 

Je n'avais pas seulement des articles dans mon code, j'avais aussi une valeur de prix...

Je pense que je comprends ce que dit votre code, mais comment il devrait aider... ?

 
PaMyC:

Je n'avais pas seulement des articles dans mon code, j'avais aussi une valeur de prix...

Je pense que je comprends ce qui est écrit dans votre code mais comment cela devrait aider... ?


expliquer

donné :

Faible = 1,3674

Haut=1.3811

Demander=1.3734

Vos calculs :

Ask +((High[1]-Low[1])*3)*Point = 1.3734+((1.3811-1.3674)*3)*Point = 1.3734+(0.0137*3)*Point = 1.3734+(0.0411)*Point = 1.3734+411 = 412.3734 - cela ne me semble pas être une bonne cotation)

il suffit d'enlever la multiplication par le point et c'est tout)

 
PaMyC:

Je n'avais pas seulement des articles dans mon code, j'avais aussi une valeur de prix...

Je pense que je comprends ce que dit votre code, mais comment il devrait aider... ?


Vous pouvez imprimer des TR normalement, mais lorsque vous passez une commande, vous la multipliez par un point et tout s'embrouille...
 
PaMyC:

Je n'avais pas seulement des articles dans mon code, j'avais aussi une valeur de prix...

Je pense que je comprends ce que dit votre code, mais comment il devrait aider... ?


Il ne s'agit peut-être pas d'un grand nombre, mais plutôt d'un très petit nombre, c'est pourquoi vous réglez le TP sur 0 ou 1.
 
vadynik:
Pouvez-vous me dire comment faire un trailing virtuel, comment remplacer OrderModify() ?


J'ai un bloc avec trailing pour un robot, à la fois normal et spécifique (pour les mouvements de nouvelles).

Je peux vous l'envoyer, mais c'est vous qui décidez).

 
Ekburg:

Vous imprimez le TP normalement, mais en passant la commande, vous multipliez à nouveau par le point et vous gâchez tout...


Merci beaucoup, ça m'a aidé), j'ai juste enlevé le point et le miracle s'est produit. ))))

comme je pensais que l'erreur était très petite, mais tellement dégoûtante...

Raison: