[Archivio!] Scriverò un consulente GRATIS - pagina 19

 

Sono nuovo della programmazione, anche se si può dire che sono un completo idiota. Ma è interessante provarci. Sto cercando di scrivere un semplice Expert Advisor che lavori un giorno alla settimana. Per esempio il lunedì apre alle ore 00-00 e chiude alle ore 24-00. Lo capisco chiaramente in parti separate, ma non posso assemblare tutto in un programma. Se sai dove trovare (scaricare) l'Expert Advisor su questo argomento. Lo voglio come campione.

 
asd05:

Sono nuovo della programmazione, anche se si può dire che sono un completo idiota. Ma è interessante provarci. Sto cercando di scrivere un semplice Expert Advisor che lavori un giorno alla settimana. Per esempio il lunedì apre alle ore 00-00 e chiude alle ore 24-00. Lo capisco chiaramente in parti separate, ma non posso assemblare tutto in un programma. Se sai dove trovare (scaricare) l'Expert Advisor su questo argomento. Lo voglio come campione.


Lo spamming è sconsigliato. Potresti essere bandito.
 
asd05:

Sono nuovo della programmazione, anche se si può dire che sono un completo idiota. Ma è interessante provarci. Sto cercando di scrivere un semplice Expert Advisor che lavori un giorno alla settimana. Per esempio il lunedì apre alle ore 00-00 e chiude alle ore 24-00. Lo capisco chiaramente in parti separate, ma non posso assemblare tutto in un programma. Se sai dove trovare (scaricare) l'Expert Advisor su questo argomento. Lo voglio come campione.

Ecco un esempio di "cacciatore notturno" primitivo. Funziona di default dalle 21 alle 8 di ogni giorno.
Nella versione più semplice, provate più o meno così:

//+------------------------------------------------------------------+
//|                                                    222222222.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int   Magic = 31295;
 extern int     Start=21;//начало работы вечером
extern int      End=8; //конец работы утром
extern int      SL=410;
extern int      TP=280;
extern double  Lot=0.1;

extern string  __________ = "=== Функция Трейлинг Стоп ====";
extern bool      UseTrailing = false;//Выключатель трейлинг стопа
extern int    MinProfit = 200;//порог включения трейлин стопа
extern int    TrailingStop = 150;// величина трейлинг стопа
extern int    TrailingStep = 10; // шаг трейлинг стопа 

bool Trade;
bool  gbNoInit    = False;   // Флаг неудачной инициализации

//----------------------------------------------------
int init()
{
//-----------------------------------------------------------
gbNoInit=False;  
if (!IsTradeAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить советнику торговать");
    gbNoInit=True; return;
  }
  if (!IsLibrariesAllowed()) {
    Message("Для нормальной работы советника необходимо\n"+
            "Разрешить импорт из внешних экспертов");
    gbNoInit=True; return;    }
}
//-----------------------------------------------------

//===================================================
int start() {// функция СТАРТ

if (UseTrailing) TrailPositions(); // выключатель трейлинг стопа


if ( Hour()>Start || Hour()<End )//если время - больше  Start или меньше End
    Trade=true;    else Trade=false;//то торговля разрешена
Comment ("Торговля разрешена с ",Start ," до ",End);
//---------------------------------------------------
if (Trade && NumberOfPositions(NULL,OP_BUY,Magic)<1) {
//если тоговля разрешена и нет откр. длинных позиций
   OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point,"хи - хи",Magic,0,SkyBlue);
                                               }
//---------------------------------------------------   
 if (Trade && NumberOfPositions(NULL,OP_SELL,Magic)<1) {
//если тоговля разрешена и нет откр. селл-  позиций 
   OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point,"тра-ля-ля",Magic,0,Green);
                                                   }
 //-----------------------------
 return (0);                                      
}//конец функции СТАРТ 


//жжжжжжжжжжжжжжжжжжжжж Пользовательские функции жжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                  |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++)                                    {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))      {
      if (OrderSymbol()==sy || sy=="")                   {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op)                   {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
          }}}}}   return(kp); }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
 void TrailPositions() // функция трейлинг стоп
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++) {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;
     if (OrderMagicNumber() == Magic ){    
     if (OrderType() == OP_BUY )  {
      if (Bid-OrderOpenPrice() > MinProfit*Point) {
        if (OrderStopLoss() < Bid-(TrailingStop+TrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }      }    }
    if (OrderType() == OP_SELL)  {
      if (OrderOpenPrice()-Ask >MinProfit*Point) {
        if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point 
                                                       || OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,
                                                      OrderTakeProfit(), 0, Blue);
        }   }   }    }   }  }

//+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);
}
 

Ciao! La scrittura è ancora in corso? :) tanto è stato scritto qui già.... vorrei scrivere un piccolo tipster ...uno semplice, su due mashmas e Momentum, e continuerò se qualcuno vuole farlo.

buona fortuna
 

Il semplice Enterra_Forex_Star_EA_3.1 Expert Advisor ha bisogno di qualche ritocco.

Tratta ad un orario prestabilito usando uno dei due RSI e mette un takeprofit virtuale su sei timer.

In caso di prezzo perdente c'è una funzione per aprire ordini aggiuntivi nella stessa direzione quando il numero di punti supera un certo valore (qualcosa come la media).

Il problema: devo aprire posizioni aggiuntive solo al momento specificato del commercio e non ricalcolare il take profit.

Devo fare:

Quando un prezzo scende da una direzione redditizia di un ordine aperto, allora un ordine sarà aperto (e poi alcuni altri - il numero dovrebbe essere regolato) dello stesso volume nella stessa direzione indipendentemente dal "tempo di lavoro" su tali condizioni (ma non "o" insieme):

-il numero minimo di punti di cui il prezzo deve andare in negativo (regolabile) è stato superato

L'indicatoreregolabile I-Reg (allegato) deve "girare" nella direzione del profitto (la larghezza del canale può essere trascurata)

Dovremmo aggiungere un meccanismo di mediazione con il primo ordine aperto (e successivi) sotto forma di "x punti dal punto di pareggio" e anche una possibilità di prendere il take a tutti gli ordini "di mediazione", come al primo ordine (tenendo conto che cambia secondo il timer).

Tutto per quanto riguarda le quotazioni a 4/5 cifre

Tutto questo è quasi come dovrebbe essere fatto in Ilan_RSI_mm_extr193 (allegato come donatore) Solo che non capisco affatto questo linguaggio.

Esempio:

Tempo specificato di commercio (apertura delle posizioni) dalle 10 alle 12

alle 11:10, l'EA apre un ordine Sell 5lot a 1.5000 - il prezzo sale e alle 11:20 viene aperto il secondo ordine Sell con lo stesso volume. Sono entrambi chiusi dal takeaway virtuale del primo, che è impostato da 6 timer nell'EA (anche se in realtà è impostato diversamente), per esempio, il takeaway è di 10 punti e l'EA chiude a 6 punti, insomma non è molto importante. Quindi si chiudono quando il prezzo raggiunge il take point del primo (ad esempio 1,4094).

Dovrei piazzare un ordine aggiuntivo quando il prezzo passerà non meno di 20 punti e solo quando l'indicatore I-Reg (configurato da me) mostrerà un'inversione di tendenza.

Devo aggiungere dei parametri di mediazione, come ho detto.

C'è un'altra cosa:

Se l'ordine è aperto alle 11:50, diciamo, vendere, e il prezzo va fortemente verso l'alto dopo le 12:00, l'EA non apre affatto gli ordini - dovremmo correggere questo per aprire la media.

Volevo essere più chiaro, ma è diventato un po' complicato.

Qualcuno può farlo?

Grazie.

File:
enterra.rar  23 kb
 
leonid553:

Ecco un esempio di un "cacciatore notturno" primitivo. Funziona di default dalle 21 alle 8 di ogni giorno.
Nella versione più semplice, provate qualcosa del genere:


Grazie, farò una prova.
 
Buon pomeriggio, ho alcune idee interessanti che vorrei implementare in un EA. Contattatemi a mrforex@mail.ru. Te ne sarei molto grato.
 

Ciao se possibile per favore scrivi un Expert Advisor basato su due Muwings per l'apertura di operazioni su crossover Grazie mille e scusami per aver usato il tuo prezioso tempo esempio nell'immagine allegata in anticipo GRAZIE mille in anticipo chughoy@list.ru


 
Buon pomeriggio. Ho bisogno di un EA che mi avvisi quando certi due dei quattro muwings sono incrociati. Sono disposto a pagare. Per contattare: shurik302(dog)gmail.com
 
molodec8:

La strategia porta fino al 40 per cento al mese

Meglio DAL 5 che PRIMA del 40% ))))