![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
ciao
grazie mille a tutti gli amici
Non puoi usare l'indicatore come consigliere, devi usare il consigliere con l'indicatore, come questo:
P.S. Non dimenticare di mettere l'indicatore nella directory dell'indicatore.
cancellato
--- cancellato ---
Codice per mostrare GIORNI/ORA dall'ultimo incrocio di una MA
Ho bisogno di un codice che mi mostri l'ultima volta che due MA si sono incrociate (cioè quanto tempo fa). Può mostrarlo in giorni o ore.
Qualsiasi aiuto sarebbe apprezzato!
Todd
Conversione all'esecuzione di mercato
Ho un EA costruito per la versione "Instant Execution" di Metatrader4 e ho bisogno di qualcuno che cambi il codice in modo che funzioni su una versione "Market Execution" di Metatrader4. Per favore inviatemi un preventivo o qualsiasi domanda a phasna@gmail.com
Grazie
Paul
Qualcuno conosce la dichiarazione icustom da usare in un EA per questo indicatore?
Ha solo un buffer SetIndexBuffer( 0, TrStopLevel ); che viene utilizzato per i punti di coda, le frecce sono disegnate da ObjectSet come si fa a prenderlo nella dichiarazione icustom?
MT4-LevelStop-Reverse-v2-1.mq4
Qualcuno conosce la dichiarazione icustom da utilizzare in un EA per questo indicatore?
Ha solo un buffer SetIndexBuffer( 0, TrStopLevel ); che è usato per i punti di coda, le frecce sono disegnate da ObjectSet come si fa a prenderlo nella dichiarazione icustom?
MT4-LevelStop-Reverse-v2-1.mq4C'è qualcuno che può aiutarmi?
Aiutatemi a piazzare trade tra gli spreads!
Ok, gli spreads uccidono alcune coppie. ma c'è la possibilità di piazzare operazioni nel mezzo di uno spreads. In questo modo possiamo risparmiare pip e fare più soldi. Ho questo codice e può essere cambiato per modificare l'ordine al prezzo del grafico e non all'offerta?
void PlaceBuyOrder()
{
doppio BuyOrders, Lots;
doppio LowestBuy = 1000, HighestBuy;
if (BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates();
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_BUY)
{
se (OrderOpenPrice() < LowestBuy) LowestBuy = OrderOpenPrice();
se (OrderOpenPrice() > HighestBuy) HighestBuy = OrderOpenPrice();
BuyOrders++;
}
}
}
if (TradeAllowed)
{
if (Ask >= HighestBuy + (TrendSpacing * Point))
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize * MathPow(LotIncrement, BuyOrders), 2);
altrimenti
Lotti = NormalizeDouble(LotSize + (LotIncrement * BuyOrders), 2);
}
if (Ask <= LowestBuy - (Spacing * Point))
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, BuyOrders), 2);
altrimenti
Lotti = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * BuyOrders), 2);
}
se (Lotti == 0)
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize, 2);
altrimenti
Lotti = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, TradeComment, Reference, Green);
Errore = GetLastError();
se (Errore != 0)
Write("Errore nell'apertura dell'ordine BUY: " + ErrorDescription(Error) + " (C" + Error + ") Ask:" + Ask + " Slippage:" + Slippage);
altrimenti
{
TickPrice = Close[0];
TradeAllowed = false;
}
}
}
void PlaceSellOrder()
{
double SellOrders, Lots;
double HighestSell, LowestSell = 1000;
if (BarTime != Time[0])
{
BarTime = Time[0];
TickPrice = 0;
TradeAllowed = true;
}
RefreshRates();
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Reference && OrderType() == OP_SELL)
{
se (OrderOpenPrice() > HighestSell) HighestSell = OrderOpenPrice();
se (OrderOpenPrice() < LowestSell) LowestSell = OrderOpenPrice();
SellOrders++;
}
}
}
if (TradeAllowed)
{
if (Bid <= LowestSell - (TrendSpacing * Point))
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize * MathPow(LotIncrement, SellOrders), 2);
altrimenti
Lotti = NormalizeDouble(LotSize + (LotIncrement * SellOrders), 2);
}
se (Bid >= HighestSell + (Spacing * Point))
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize * CounterTrendMultiplier * MathPow(LotIncrement, SellOrders), 2);
altrimenti
Lotti = NormalizeDouble((LotSize * CounterTrendMultiplier) + (LotIncrement * SellOrders), 2);
}
se (Lotti == 0)
{
// se (Moltiplicatore)
se (Moltiplicatore == 1)
Lotti = NormalizeDouble(LotSize, 2);
altrimenti
Lotti = NormalizeDouble(LotSize, 2);
}
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, TradeComment, Reference, Red);
Errore = GetLastError();
se (Errore != 0)
Write("Errore nell'apertura dell'ordine SELL: " + ErrorDescription(Error) + " (D" + Error + ") Bid:" + Bid + " Slippage:" + Slippage);
else
{
TickPrice = Close[0];
TradeAllowed = false;
}
}
}
Questo è qualcosa che può essere fatto?
AIUTO~ solo 1 errore, uso 3 ore ancora non riesco a trovarlo
qualcuno può dirmi dove è l'errore? o aiutarmi a fare il debug, ho allegato i file, vedi buttom~ ~
'\fine_di_programma' - parentesi sbilanciata a sinistra C:\Programmi MetaTrader\experts\scripts\delete_pending_SAM.mq4 (38, 2)
È UN FILE SCRIPT~ ~ ~
//+------------------------------------------------------------------+
//| delete_pending.mq4
//| Copyright ?2004, MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#proprietà show_inputs
risultato bool;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "cancella ordine in sospeso" |
//+------------------------------------------------------------------+
int start()
{
for (int number=0; (number <= OrdersTotal()+1); number++ )
{for (int times=0; (times <= OrdersTotal()+1); times++ )
{if (OrderSelect(numero,SELECT_BY_POS,MODE_TRADES) )
{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;
if ((OverSymbolDel ==0)&& (Symbol()==OrderSymbol() ) delPending();
se (OverSymbolDel ==1) delPending();
}
else Print("Errore durante la selezione dell'ordine", GetLastError() ) ;
}
}
}
//+------------------------------------------------------------------+
void delPending()
{OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (result==False) Print("Errore durante la cancellazione dell'ordine ", GetLastError() );
}
A chiwing
Prova questo:
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}A chiwing
Prova questo:
#property link "http://www.metaquotes.net/"
#property show_inputs
bool result;
extern double OverSymbolDel = 1; //0:FASLE ; 1: TRUE
//+------------------------------------------------------------------+
//| script "delete pending order" |
//+------------------------------------------------------------------+
int start()
{
for (int number=OrdersTotal()-1; number >= 0; number--)
{
OrderSelect(number,SELECT_BY_POS,MODE_TRADES);
if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) continue;
if (OverSymbolDel ==0&& Symbol()==OrderSymbol() ) delPending();
if (OverSymbolDel ==1) delPending();
}
}
//+------------------------------------------------------------------+
void delPending()
{
OrderPrint();
int ticket =OrderTicket();
result=OrderDelete(ticket);
if (!result) Print("Error when delete Order ", GetLastError() );
}grazie per il tuo aiuto~ ~ ~
e ho trovato il mio errore:
{if (OrderSelect(number,SELECT_BY_POS,MODE_TRADES) )
cambia in
OrderSelect(numero,SELECT_BY_POS,MODE_TRADES);
{if((OrderType()==OP_BUY) || (OrderType()==OP_SELL) ) break;
cambia in
if((TipoOrdine()==OP_BUY) || (OrderType()==OP_SELL) ) continua a contare;