bonjour a tous je vous présente l'expert tant attendu de Mr attar El waddah qui a partagé avec moi son invention, le problème c'est que la plupart des broker sont des arnaqueurs et ne veulent pas que les particuliers rélisent des gains larges ( des millions).
donc je vous laisse a tester vous même et voir les résultats.
l'expert demande certains spécificités et marche sur le broker : Global Clearing Group
#property copyright "Copyright © 2012, Tanmiyat Corp."
#property link "http://www.Tanmiyat.co"
#property show_inputs
#include <WinUser32.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
extern double Lot=0.1;
extern double SL=5;
extern double TP=1;
extern double StepBuy=1;
extern double StepSell=1;
extern int SlippageOpen=0;
extern int SlippageClose=0;
extern bool TradeBuy=true;
extern bool TradeSell=true;
extern bool UseMM=true;
extern double MM=10;
int MagicNumBuy=129991;
int MagicNumSell=129992;
double pAsk=0;
double pBid=0;
int t=0;
double l=0;
int nd;
int check;
void deinit()
{
}
void init()
{
Comment("");
if(MarketInfo(Symbol(),MODE_MINLOT)<0.1)
{
nd=2;
}
else if(MarketInfo(Symbol(),MODE_MINLOT)>0.1)
{
nd=0;
}
else
{
nd=1;
}
pAsk=MarketInfo(Symbol(),MODE_ASK);
pBid=MarketInfo(Symbol(),MODE_BID);
}
int start()
{
while(true)
{
TryClose();
CalcLot();
TryTrade();
pAsk=MarketInfo(Symbol(),MODE_ASK);
pBid=MarketInfo(Symbol(),MODE_BID);
Sleep(25);
}
}
void CalcLot()
{
if(UseMM==true)
{
l=NormalizeDouble(AccountEquity()*MM/10000,nd);
if(l<MarketInfo(Symbol(),MODE_MINLOT)) l=MarketInfo(Symbol(),MODE_MINLOT);
if(l>MarketInfo(Symbol(),MODE_MAXLOT)) l=MarketInfo(Symbol(),MODE_MAXLOT);
}
else
{
l=Lot;
}
}
void TryTrade()
{
if(TradeBuy==true)
{
if(MyOrdersBuyTotal(MagicNumBuy)<1 && MarketInfo(Symbol(),MODE_ASK)<=pBid-StepBuy*Point)
{
OrderSend(Symbol(),OP_BUY,l,MarketInfo(Symbol(),MODE_ASK),SlippageOpen,0,0,"",MagicNumBuy,0,Green);
check=GetLastError();
if(check!=ERR_NO_ERROR) Print("error: ",ErrorDescription(check));
}
}
if(TradeSell==true)
{
if(MyOrdersSellTotal(MagicNumSell)<1 && MarketInfo(Symbol(),MODE_BID)>=pAsk+StepSell*Point)
{
OrderSend(Symbol(),OP_SELL,l,MarketInfo(Symbol(),MODE_BID),SlippageOpen,0,0,"",MagicNumSell,0,Red);
check=GetLastError();
if(check!=ERR_NO_ERROR) Print("error: ",ErrorDescription(check));
}
}
}
void TryClose()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==MagicNumBuy)
{
if(OrderProfit()>0 && MarketInfo(Symbol(),MODE_BID)>=OrderOpenPrice()+TP*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),SlippageClose,Blue);
}
if(MarketInfo(Symbol(),MODE_ASK)<=OrderOpenPrice()-SL*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),SlippageClose,Blue);
}
}
if(OrderMagicNumber()==MagicNumSell)
{
if(OrderProfit()>0 && MarketInfo(Symbol(),MODE_ASK)<=OrderOpenPrice()-TP*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),SlippageClose,Blue);
}
if(MarketInfo(Symbol(),MODE_BID)>=OrderOpenPrice()+SL*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),SlippageClose,Blue);
}
}
}
}
int MyOrdersBuyTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_BUY)
{
c++;
}
}
return(c);
}
int MyOrdersSellTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
c++;
}
}
return(c);
}
donc je vous laisse a tester vous même et voir les résultats.
l'expert demande certains spécificités et marche sur le broker : Global Clearing Group
#property copyright "Copyright © 2012, Tanmiyat Corp."
#property link "http://www.Tanmiyat.co"
#property show_inputs
#include <WinUser32.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
extern double Lot=0.1;
extern double SL=5;
extern double TP=1;
extern double StepBuy=1;
extern double StepSell=1;
extern int SlippageOpen=0;
extern int SlippageClose=0;
extern bool TradeBuy=true;
extern bool TradeSell=true;
extern bool UseMM=true;
extern double MM=10;
int MagicNumBuy=129991;
int MagicNumSell=129992;
double pAsk=0;
double pBid=0;
int t=0;
double l=0;
int nd;
int check;
void deinit()
{
}
void init()
{
Comment("");
if(MarketInfo(Symbol(),MODE_MINLOT)<0.1)
{
nd=2;
}
else if(MarketInfo(Symbol(),MODE_MINLOT)>0.1)
{
nd=0;
}
else
{
nd=1;
}
pAsk=MarketInfo(Symbol(),MODE_ASK);
pBid=MarketInfo(Symbol(),MODE_BID);
}
int start()
{
while(true)
{
TryClose();
CalcLot();
TryTrade();
pAsk=MarketInfo(Symbol(),MODE_ASK);
pBid=MarketInfo(Symbol(),MODE_BID);
Sleep(25);
}
}
void CalcLot()
{
if(UseMM==true)
{
l=NormalizeDouble(AccountEquity()*MM/10000,nd);
if(l<MarketInfo(Symbol(),MODE_MINLOT)) l=MarketInfo(Symbol(),MODE_MINLOT);
if(l>MarketInfo(Symbol(),MODE_MAXLOT)) l=MarketInfo(Symbol(),MODE_MAXLOT);
}
else
{
l=Lot;
}
}
void TryTrade()
{
if(TradeBuy==true)
{
if(MyOrdersBuyTotal(MagicNumBuy)<1 && MarketInfo(Symbol(),MODE_ASK)<=pBid-StepBuy*Point)
{
OrderSend(Symbol(),OP_BUY,l,MarketInfo(Symbol(),MODE_ASK),SlippageOpen,0,0,"",MagicNumBuy,0,Green);
check=GetLastError();
if(check!=ERR_NO_ERROR) Print("error: ",ErrorDescription(check));
}
}
if(TradeSell==true)
{
if(MyOrdersSellTotal(MagicNumSell)<1 && MarketInfo(Symbol(),MODE_BID)>=pAsk+StepSell*Point)
{
OrderSend(Symbol(),OP_SELL,l,MarketInfo(Symbol(),MODE_BID),SlippageOpen,0,0,"",MagicNumSell,0,Red);
check=GetLastError();
if(check!=ERR_NO_ERROR) Print("error: ",ErrorDescription(check));
}
}
}
void TryClose()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==MagicNumBuy)
{
if(OrderProfit()>0 && MarketInfo(Symbol(),MODE_BID)>=OrderOpenPrice()+TP*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),SlippageClose,Blue);
}
if(MarketInfo(Symbol(),MODE_ASK)<=OrderOpenPrice()-SL*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),SlippageClose,Blue);
}
}
if(OrderMagicNumber()==MagicNumSell)
{
if(OrderProfit()>0 && MarketInfo(Symbol(),MODE_ASK)<=OrderOpenPrice()-TP*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),SlippageClose,Blue);
}
if(MarketInfo(Symbol(),MODE_BID)>=OrderOpenPrice()+SL*Point)
{
OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),SlippageClose,Blue);
}
}
}
}
int MyOrdersBuyTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_BUY)
{
c++;
}
}
return(c);
}
int MyOrdersSellTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
c++;
}
}
return(c);
}