Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Domanda EA
Ciao Codersguru,
Sto cercando di imparare la programmazione e sto usando il tuo materiale, lasciami dire che è eccellente! passo dopo passo e semplice da seguire, grazie per questo.
Ho una domanda, visto che usi l'ema cross over come esempio per l'EA, stavo pensando di usare l'indicatore stepMA_7.2 invece dell'ema. Pensi che l'indicatore stepMA_7.2 funzionerà? o il codice dovrà essere riorganizzato o forse sarà necessario altro codice aggiuntivo?
Stavo pensando che solo uno scambio di indicatori nel codice dovrebbe funzionare.
Grazie in anticipo
Grazie.
Questo è sbagliato: le barre precedenti sono positive contate
Grazie.
Ho ancora qualche problema. Gli ordini di acquisto vengono aperti correttamente, ma tutti vengono chiusi allo stoploss, ignorando le condizioni di uscita.
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}Mediamobile di un altro indicatore
Capito.
controllare le posizioni aperte all'interno di un intervallo
Sto cercando di controllare le posizioni aperte entro x pip, se nessuna posizione è aperta ne aprirà una. Non funziona e apre continuamente posizioni, qualcuno può aiutarmi?
if(buyingPosition)
{
weBeBuying = true;
totalorders = OrdersTotal();
for(i=0;i<totalorders;i++)
{
OrderSelect(i,SELECT_BY_POS);
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
tipo = OrderType();
if((type == OP_BUY) || (type == OP_BUYLIMIT))
{
if(((Bid+spread) - OrderOpenPrice()) > -0,0013)
weBeBuying = false;
}
}
}
}
if(weBeBuying==true)
OrderSend(Symbol(),OP_BUY,lots,Bid+spread,slippage,0,0,NULL,magicNumber,0,Green);
MA di un indicatore iCustom
Come faccio a codificare la dichiarazione in un ea per fare riferimento ad una media mobile di 7, Smooth, di un indicatore iCustom? Il che equivale a utilizzare una media mobile utilizzando i dati del primo indicatore. È possibile fare questo nella visualizzazione di un indicatore iCustom e avere una MA dell'indicatore (utilizzando i dati dei primi indicatori), ma come si fa a codificare in un ea??
Per favore aiutatemi su questa affermazione!
Vi ringrazio in anticipo per il vostro aiuto!
Dave
Qualcuno può aiutarmi con questo???? Per favore!!!!
Penso di aver capito!
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); //LOWER GAMMA
Ho ancora bisogno di aiuto su questo - Potete aiutarmi!
Sere puoi postare le tue domande relative a MQL4, e farò del mio meglio per rispondere
per il codice di errore.
Ho appena restituito conto a me che su tutti i miei esperti, ho un codice di errore "OrderModify errore 1", anche con un esperto come quello di Coders Guru, sotto,
perché?
Grazie!
//+------------------------------------------------------------------+
//| PriceCross.mq4 |
//| Coders Guru ||
//| https://www.mql5.com/en/forum ||
//+------------------------------------------------------------------+
#proprietà copyright "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- Include
#include
//---- Limiti delle transazioni
extern double TakeProfit = 200;
extern double TrailingStop = 50
extern double StopLoss = 50;
extern double Lots = 0.1;
extern int Slippage = 5;
//--- Opzioni esterne
extern int CurrentBar = 1;
extern int HedgeLevel = 6;
extern double Expiration = 7200;
extern int Size = 4;
extern int Step = 1;
extern bool UseClose = true;
//--- Impostazioni degli indicatori
extern int MaMode = 3;
extern int MaPeriod = 24;
//--- Variabili globali
int MagicNumber = 101090;
string ExpertComment = "PriceCross
bool LimitPairs = true;
bool LimitFrame = true;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // aggiungi/rimuovi le coppie che vuoi limitare.
bool Optimize = true;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//ciclo attraverso tutti gli ordini aperti e confronto dei simboli
int totale = OrdiniTotali();
for(int cnt = 0 ; cnt < totale ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
stringa selected_symbol = OrderSymbol();
if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
return (Falso);
}
return (True);
}
//+------------------------------------------------------------------+
int start()
{
int cnt, ticket, totale,n;
doppio trend ;
if(Bars<100) {Print("barre meno di 100"); return(0);}
if(LimitFrame)
{
if(Periodo()!=TimeFrame) {Print("Questo EA non funziona con questo TimeFrame!"); return(0);}
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == false) {Print("Questo EA non funziona con questa valuta!"); return(0);}
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar);
//--- Condizioni di trading
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
se (Apertura[1]tendenza)
BuyCondition = true;
se (Apertura[1]>tendenza && Chiusura[1]<tendenza)
SellCondition = true;
se (Open[1]>trend && Close[1]<trend)
CloseBuyCondition = true;
se (Apertura[1]trend)
CloseSellCondition = true;
totale = OrdiniTotali();
if(totale < 1 || isNewSymbol(Symbol())
{
if(BuyCondition) //<-- condizione BUY
{
ticket = OpenOrder(OP_BUY); //<-- Aprire ordine BUY
CheckError(ticket, "BUY");
for(n=0 ; n< Dimensione ; n++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lotti,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
return(0);
}
if(SellCondition) //<-- condizione SELL
{
ticket = OpenOrder(OP_SELL); //<-- Aprire ordine SELL
CheckError(ticket, "SELL");
for(n=0 ; n < Dimensione ; n++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lotti,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
return(0);
}
return(0);
}
for(cnt=0;cnt<totale;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- La posizione lunga è aperta
{
if(UseClose)
{
if(CloseBuyCondition) //<-- Chiudi l'ordine e esci!
{
CloseOrder(OrderType()); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Tracciamento dell'ordine
}
if(OrderType()==OP_SELL) //<-- Passa alla posizione short
{
if(UseClose)
{
if(CloseSellCondition) //<-- Chiudi l'ordine e esci!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Tracciamento dell'ordine
}
}
}
return(0);
}
//+------------------------------------------------------------------+
....
Ciao,
C'è un modo per sapere che un ordine è già chiuso?
L'illustrazione è come questa:
Apro 2 ordini pendenti.
aperto #182 acquisto limite 0.17 EURUSD a 1.3005 sl: 1.2970 tp: 1.3013
aprire #183 comprare limite 0,17 EURUSD a 1,3000 sl: 1,2968 tp: 1,3011
poi
ordine #182, compra 0.17 EURUSD è aperto a 1.3005
take profit #182 a 1.3013 (1.3013 / 1.3015)
voglio cancellare l'ordine #183 dopo che l'ordine #182 è chiuso. Il trigger è se l'ordine #182 chiuso allora l'ordine #183 sarà cancellato.
Saluti