Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Acheter et vendre en même temps

  • xav069

    Salut tout le monde,

    Manquant de sommeil, j'ai une idée un peu folle qui pourrait marcher mais un peu débile je l'avoue.

    Ca sera d'ouvrir deux positions opposées levier 400 et de mettre des take profit et stop loss pour chacune des positions: 55 et 50%

    Je me disais qu'avec ca y a bcp de chance de faire 5% sur le fait que la tendance partirait constamment dans un sens sur un si petit le écart de pips nn? (ou manque de chance ca s'arrete pile entre et ca repart dans l'autre sens et on perd tout XD)

    Fin je sais pas comment ca passerait au niveau du spread aussi :P

    Aller poster vos commentaires :P
  • Stratégie achat vente (invité)

    Je pense que dans ce que tu cites, il s'agit d'un straddle?
    http://www.forexagone.com/apprendre/definition-forex/straddle.html
  • edgar

    quand on ACHETE un put et un call, on perd la valeur"temps", il vaut mieux dans ce cas VENDRE un call et un put et on gagne la valeur temps
    on ne fait la PUB sur le MONEP car les banques n'ont pas grand chose à CROQUER
    on fait la PUB sur les WARRANTS c'est plus lucratif pour les banques
  • Chan

    Mauvaise idée puisque quand le cours viendra cogner tes 2 stop loss tu va perdre très gros. Tu te dis qu'il y a peu de risque mais il y en a.
  • edgar

    si on est en range et SL est loin cela ne cause pas de souci,
    il faut trouver une alchimie entre plusieurs éléments:
    au lieu su SL c'est un autre grand hedge avec un delta de près de 600 pips(à faire avec un compte sans swap)
    trader en contre tendance avec ecart de plus de 50 pips
    un compte bien fourni
    avec tout ça on peut esperer un retour de 5% par mois
    comme le forex est "une personne" qui est derriere notre ecran et se fait plaisir de nous contredire:Dès qu'on met cette strategie en place,c'est une tendance de plus de 1500 pips qui va se produire mais si on ne la met pas en place c'est des range sur plusieurs mois de 300 pips qui se produit
  • JJFlash

    Ce que tu veux faire c'est du hedging, et si on sait s'en servir sa peut être trèèèès puissant. Par exemple je te propose d'allé voir ce site où y'a une technique trading basé là dessus qui fonctionne très bien :
    http://www.broker-forex.fr/methode-trading-sure-fire-hedging.php
    J'ai posté sur expert advisor sur forexagone y'a pas longtemps. L'expert fonctionne sur cette stratégie, je pense qu'il sera bientôt disponible !
  • Altore — en réponse à xav069 dans son message #74603

    bonjour xav069

    j'ai eu exactement la meme idée l'année derniere, je l'ai testé en DEMO et ça ne fonctionne pas, de plus meme quand tu as reussit un coup tu manges 2 fois le spread

    et puis je me suis dit que si j'etait capable de prevoir, par exemple, une chute de 50 pts sur un marché puis une "extension" encore de 20 pts soit pour un total de 70, il valait mieux rentré 1 fois short a -50 et prendre les 20 pts pour la fameuse extension

    j'ai été plus loin dans cette theorie, c'est a dire que j'ai placé des ordres conditionnel "programmé" tous les 15 pips dans les 2 sens, donc par exemple 5 au dessus du cours espacé de 15 pips chancun avec TP et SL et pareil en dessous

    je me suis dit:
    si ça range: je perds 2 positions, un achat et une vente
    si ça part "fort" dans un sens, j'ai 5 gains

    cette fois c'est la bonne!!! j'ai trouvé un truc pour faire du fric chaque semaine a coup sur!

    hum...hum...
    rouste sur rouste!

    bon je change le MM et je mets par exemple pour la hausse: 10 lots pour la premiere, 8 lots pour la deuxieme, 6 lots pour la 3 eme , 4 lots pour la 4eme et 2 lots pour la derniere
    pareil pour la baisse

    je me dit:
    si le mouvement s'arrete en cours de route, je ne perdrais presque rien sur la derniere pos ou sur les 2 dernieres

    hum...hum...
    ça ne marche pas non plus puisque si ça range je me retrouve avec 2 pos perdantes plus importante que 3, 4 voir les 5 gagnantes
    et donc un ratio negatif (a ça il faut y rajouter tout les spread!)

    excusez moi de la longeur du texte, mais ce sont mes petites experiences
    voila... bonne journée a tous !
  • Spikiz8064 (invité) — en réponse à Altore dans son message #74671

    Sinon tu peux adopter la methode de Josh qui est fortement similaire.

    2 pending order : 1 a l'achat et l'autre en vente. C'est du suivi de tendance donc il faut bien connaitre la ou les devises sur lesquelles tu joues.

    Donc : placer les ordres et attendre que l'un ou l'autre soit toucher.
    se fixer un TP et generalement le SL est mental.

    Cette methode necessite une bonne connaissance du chartisme, c'est une methode simple mais il faut une bonne discipline.
  • xav069 — en réponse à Altore dans son message #74671

    Merci à tous d'avoir répondu j'apprend pas mal de truc :P et surtout merci à Altore d'avoir raconté son expérience meme si tu nous a écrit une tartine :P

    Pour l'instant je suis en train de me demander si je n'étudirais pas la théorie de Dow et d'utiliser du chartisme et en plus av Bollinger et RSI
  • falko1962 — en réponse à Altore dans son message #74671

    qui veut la méthode magique ?????
  • lefeuvr3

    J'ai peut être ce programme qui pourrait vous aider
    Code
    //+------------------------------------------------------------------+ //| RENGOU V4 EURUSD 1MN.mq4 | //| QPG | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "QPG" #property link "https://www.mql5.com" #property version "1.00" //#property strict //+------------------------------------------------------------------+ extern int MagicNumber=31082018; double lot; extern double StopLoss=0; extern double TakeProfit=50; extern int TrailingStop=50; extern int Slippage=3; double point = MarketInfo(Symbol(), MODE_POINT); int spread = MarketInfo(Symbol(), MODE_SPREAD); extern int size = 3; extern int shiftOpenBuy =0; extern int shiftCloseBuy =1; extern int shiftOpenSell =0; extern int shiftCloseSell =1; extern double LotFactor =50; //lotsize factor extern int Amount = 250; extern int LockDown = 310; extern int Start_Hour = 1; extern int End_Hour = 23; extern string Name_EA = " RENGOU EURUSD 1MN V.4.mq4"; extern bool TrailingStop_ = true; extern string tp="TP IN MONEY"; extern bool Tp_in_Money = true; extern double TP_in_money = 8;//agir sur ce levier double pt; int ras; //+------------------------------------------------------------------+ // expert start function //+------------------------------------------------------------------+ int start() { if(TrailingStop_)dtrailing(); if(Tp_in_Money && TP_in_money<=money()) closeall(); double MyPoint=Point; if(Digits==3 || Digits==5) MyPoint=Point*10; double TheStopLoss=0; double TheTakeProfit=0; if( TotalOrdersCount()==0 ) { int result=0; //+------------------------------------------------------------------+ // Here is your open buy rule //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ // Here is the beginning of your open buy rule strategy //+------------------------------------------------------------------+ if (iOpen(Symbol(),0, shiftOpenBuy)> iClose(Symbol(),0, shiftCloseBuy)+ (size + spread)*point) //+------------------------------------------------------------------+ // Here is the end of your buy rule strategy //+------------------------------------------------------------------+ if (!IsTradeContextBusy() && IsTradeAllowed()) { result=OrderSend(Symbol(),OP_BUY, NR(Lot_Volume()),Ask,Slippage,0,0,"EA MODEL",MagicNumber,0,Blue); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint; if(OrderSelect(result,SELECT_BY_TICKET)) bool modif1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } //+------------------------------------------------------------------+ // Here is your open sell rule //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ // Here is the beginning of your open sell rule strategy //+------------------------------------------------------------------+ if ( iOpen(Symbol(),0, shiftOpenSell)< iClose(Symbol(),0, shiftCloseSell)- (size + spread)*point) //+------------------------------------------------------------------+ // Here is the end of your sell rule strategy //+------------------------------------------------------------------+ if (!IsTradeContextBusy() && IsTradeAllowed()) { result=OrderSend(Symbol(),OP_SELL, NR(Lot_Volume()),Bid,Slippage,0,0,"EA MODEL",MagicNumber,0,Red); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint; if(OrderSelect(result,SELECT_BY_TICKET)) bool modif2=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } } for(int cnt=0;cnt<OrdersTotal();cnt++) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) { if(OrderType()==OP_BUY) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()<Bid-MyPoint*TrailingStop) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green)) return(0); } } } } else { if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)) { if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red)) return(0); } } } } } } return(0); } int TotalOrdersCount() { int result=0; for(int i=0;i<OrdersTotal();i++) { if (OrderSelect(i,SELECT_BY_POS ,MODE_TRADES)) if (OrderMagicNumber()==MagicNumber) result++; } return (result); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //********************************************************************* //+------------------------------------------------------------------+ int Hour_trade() { bool trade=false; if(Start_Hour>End_Hour) { if(Hour()>=Start_Hour || Hour()<End_Hour) trade=true; } else if(Hour()>=Start_Hour && Hour()<End_Hour) trade=true; return (trade); } //+------------------------------------------------------------------+ // //+------------------------------------------------------------------+ int totalorder(int tipe) { int total=0; for(int i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber || OrderType()!=tipe) continue; total++; } return(total); } //+------------------------------------------------------------------+ //Calculates Lot Size based on balance and factor //+------------------------------------------------------------------+ double NR(double thelot) { double maxlots=MarketInfo(Symbol(),MODE_MAXLOT), minilot=MarketInfo(Symbol(),MODE_MINLOT), lstep=MarketInfo(Symbol(),MODE_LOTSTEP); double lots=lstep*NormalizeDouble(thelot/lstep,0); lots=MathMax(MathMin(maxlots,lots),minilot); return (lots); } //+------------------------------------------------------------------+ double Lot_Volume() { lot=AccountBalance() * 0.01 /LotFactor ; return(lot); } //+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ void dtrailing() { int i,r;double tpn; for(i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; tpn=OrderTakeProfit(); if(OrderType()==OP_BUY) { if(Bid-OrderOpenPrice()>pt*TrailingStop) { if((OrderStopLoss()<Bid-pt*TrailingStop) || (OrderStopLoss()==0)) { if(tpn) r=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-pt*TrailingStop,OrderTakeProfit(),0,Green); } } } if(OrderType()==OP_SELL) { if((OrderOpenPrice()-Ask)>(pt*TrailingStop)) { if(OrderStopLoss()>(Ask+pt*TrailingStop) || (OrderStopLoss()==0)) { if(tpn) r=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+pt*TrailingStop,OrderTakeProfit(),0,Red); } } } } } //+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ void closeall() { for(int i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderType()>1) ras=OrderDelete(OrderTicket()); else { if(OrderType()==0) ras=OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); else ras=OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); } } } //+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ double money() { double dp=0; int i; for(i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; dp+=OrderProfit(); } return(dp); } //+------------------------------------------------------------------+ bool CheckMoneyForTrade(string symb,double lots,int type) { double free_margin=AccountFreeMarginCheck(symb,type, lots); //-- if there is not enough money if(free_margin<0) { string oper=(type==OP_BUY)? "Buy":"Sell"; //fPrint("Not enough money for ", oper," ",lots, " ", symb, " Error code=",GetLastError()); return(false); } //--- checking successful return(true); } //--------------------------------------------------------------------------- int CheckForClose() { if(getProfit()>=Amount){CloseAll();} if(LockDown>0) { for(int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--) { if (OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0)) { int Pos=OrderType(); if((Pos==OP_BUY)&&(Bid-OrderOpenPrice()>Point*LockDown)&&(OrderStopLoss() == 0)) {bool modif1=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Point,OrderTakeProfit(),0,CLR_NONE);} if((Pos==OP_SELL)&&(OrderOpenPrice()-Ask>Point*LockDown)&&(OrderStopLoss() == 0)) {bool modif2=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE);} } } } return(0); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- double getProfit() { double Profit = 0; for (int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--) { if (OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)) Profit = Profit + OrderProfit() + OrderSwap(); } return (Profit); } //--------------------------------------------------------------------------- void CloseAll() { bool Result; int i,Pos,Error; int Total=OrdersTotal(); if(Total>0) { for(i=Total-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { Pos=OrderType(); if(Pos==OP_BUY) {Result=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE);} if(Pos==OP_SELL) {Result=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE);} if((Pos==OP_BUYSTOP)||(Pos==OP_SELLSTOP)||(Pos==OP_BUYLIMIT)||(Pos==OP_SELLLIMIT)) {Result=OrderDelete(OrderTicket(), CLR_NONE);} //----------------------- if(Result!=true) { Error=GetLastError(); Print("LastError = ",Error); } else Error=0; //----------------------- } } } }
    lefeuvr3 a joint une image
    acheter-et-vendre-en-meme-temps-11062
  • Rengou

    ok grand merci. je vais compiler et tester
  • lefeuvr3

    essaye le sur CAC 40 cash index sans modification des parametres
    lefeuvr3 a joint une image
    acheter-et-vendre-en-meme-temps-11064
  • lefeuvr3

    Avec le QPG renko version 1 ou version 3 on devrait atteindre d'aussi bon résultats sur le cac 40 si on corrige "Ordermodify error 130"...je regarderai cela quand j'aurai un peu de temps.
  • lefeuvr3


    le RENGOU V4 pour EURUSD
    Je l'ai a nouveau back testé pour améliorer la performance qui n'était pas suffisante a mon gout.
    Pendant la période de trading apparait modify error 1
    Le modify error 1 est du au fait qu'il n'y a pas de TP et de SL….c'est pas très propre mais…. ça ne gene pas pour le trading

    Utilisé avec d'autres parametres je pense que l'on devrait avoir de bons résultats sans modify error 130...je vais essaye …
    Toujours est il que voici les parametres pour EURUSD.
    Modifié le 2018-11-30 17:33:35 par lefeuvr3
    lefeuvr3 a joint une image
    acheter-et-vendre-en-meme-temps-11065
  • lefeuvr3

    Voici les paramètres pour le CAC 40
    lefeuvr3 a joint une image
    acheter-et-vendre-en-meme-temps-11066
  • lefeuvr3

    Suivi de cet EA
    lefeuvr3 a joint une image
    acheter-et-vendre-en-meme-temps-11781