aiutatemi per favore [risolto] - pagina 3

 
mrluck1:
Sì signore, solo 1 commercio mai fatto, ma il tuo esempio era grande, sarà molto utile come base per creare nuovi eas
bool trade_made = false;

void OnTick()
  {
   double up   = iIchimoku(NULL,5,9,26,52,3,0),
          down = iIchimoku(NULL,5,9,26,52,4,0);
   static bool was_above = true;
   bool is_above = (MathMax(up,down)< Bid);
   if(!trade_made && !was_above && is_above && open_orders()<1)
     {
      if(OrderSend(NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point)<0)
        {
         printf("OrderSend() failed. Error code: %i",GetLastError());    
        }
      else t rade_made=true;
     }
   was_above = is_above;
  }

int open_orders()
  {
   int count = 0;
   for(int i=OrdersTotal()-1; i>=0; i--) // good habit to count down
     {
      if(!OrderSelect(i,SELECT_BY_POS))  continue;  // select the order
      if(OrderSymbol() != _Symbol)       continue;  // optional check for same symbol
      if(OrderMagicNumber()!= magic_no)  continue;  // optional check for magic number
      if(OrderType() < 2)                count++;   // 0 == OP_BUY and 1 == OP_SELL
     }
   return(count);
  }
 
mrluck1:

Marco: Ho provato il tuo nuovo aggiornamento, ma non fa nessun trade, ho messo proprio il modo in cui hai postato l'ultimo, solo rimosso il secondo int, nel ticket. Ma il primo trade non viene mai fatto su strategy tester, cosa fare ora?

Dovrebbe piazzare un trade perché:


     if (MathMax (up,down) < Bid )

    ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);


//+------------------------------------------------------------------+
//|                                                    One Order.mq4 |
//|      Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Marco vd Heijden, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

bool order=0;int ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(order==0)
     {
      double up=iIchimoku(NULL,5,9,26,52,3,0);
      double down=iIchimoku(NULL,5,9,26,52,4,0);
        {
         if(MathMax(up,down)<Bid)
           {
            ticket=OrderSend(NULL,0,0.01,Ask,3,Bid-150*Point,Bid+100*Point);
              {
               if(ticket>-1)
                 {
                  order=1;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

Ho appena provato e ha piazzato UN ordine...


 

Grazie millehonest_knave che è esattamente quello di cui avevo bisogno, sarò per sempre in debito,

grazie anche al signor Marco per il suo aiuto.

 
mrluck1:

Grazie millehonest_knave che è esattamente quello di cui avevo bisogno, sarò per sempre in debito,

Non c'è di che. Ma sei d'accordo che la risposta è raramente così semplice come sembra? Il che può spiegare alcuni dei commenti quiCODE Help( Urgent).
 
honest_knave:
Non c'è di che. Ma sei d'accordo che la risposta è raramente così semplice come sembra? Il che può spiegare alcuni dei commenti quiCODE Help( Urgent).
ho già rimosso quel commento, un semplice EA è un problema per me, non so nulla davvero per dire qualcosa
 
mrluck1:
Ho già rimosso quel commento, un semplice EA è un problema per me, non so nulla davvero per dire qualcosa

Ehi, stiamo ancora imparando tutti. E il tuo cuore era nel posto giusto.

Sono contento che tu abbia risolto il tuo problema.

Ci sono molti modi per fare la stessa cosa... Marco ed io abbiamo affrontato il problema da direzioni diverse, ed entrambi sono ugualmente corretti.

Buona fortuna

 

Sì, signorMarco vd Heijden, funziona proprio come quello di honest_knave, ho provato di nuovo in base all'ultimo codice che disponi, ha funzionato alla grande, prenderò entrambe le risposte, e userò il tuo per questo script perché è più simile all'idea originale.

Grazie per il vostro aiuto

 
Credo che, dal codice che hai postato, l'EA non aprirà più l'ordine. A meno che tu non rimuova l'EA dal grafico e lo riattacchi di nuovo (per inizializzarlo). Immagino che questo fosse lo scopo?
 
Hairi Baba:
Credo che, dal codice che hai postato, l'EA non aprirà più l'ordine. A meno che tu non rimuova l'EA dal grafico e lo riattacchi di nuovo (per inizializzarlo). Immagino che questo fosse lo scopo?

Ora speriamo che scelga la direzione giusta :)

Ho letto da qualche parte di un tizio che ha dimenticato di avere ancora una posizione aperta e indovina cosa è successo... $$$$$

 
Hairi Baba:
Credo che, dal codice che hai postato, l'EA non aprirà più l'ordine. A meno che tu non rimuova l'EA dal grafico e lo riattacchi di nuovo (per inizializzarlo). Immagino che questo fosse lo scopo?
Sì, è quello che vuole l'OP.