Come codificare? - pagina 152

 
m_43_62:
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

 
increase:
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.mq4

C'è 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

Sono molto preoccupato, perché non riesco a trovare come correggere l'errore qui sotto

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() );

}

File:
 

A chiwing

Prova questo:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#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() );

}
 
Roger09:
A chiwing

Prova questo:

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#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;