Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 293

 
oDin48:

Ragazzi, per favore consigliate un buon DC per il trading EA?


Condividete le informazioni, per favore, perché che senso ha scrivere un gufo senza avere dei DC normali con cui lavorare.
 

https://www.mql5.com/ru/market/product/1144

Ho questo EA in vendita nel mercato per 1800 USD, l'ho testato su EURUSD e fa soldi perfettamente, sulle altre coppie scambia con degli zeri, penso che sia stato adattato alla storia dei biglietti, può essere questo?

 
oDin48:

Condividete le informazioni, per favore, perché che senso ha scrivere un gufo senza avere dei DC normali con cui lavorare.
Ti consiglio di cercarlo su Google! È tutto ufficialmente buono!
 
SpikeOne:

https://www.mql5.com/ru/market/product/1144

Ho questo EA in vendita nel mercato per 1800 USD, l'ho testato su EURUSD e fa soldi perfettamente, sulle altre coppie scambia con degli zeri, penso che sia stato adattato alla storia dei biglietti, può essere questo?

Penso che abbia qualcosa a che fare con la cronologia dei biglietti, è per MT5! Puoi chiedere lì!
 
TarasBY:

... e secondo quali regole linguistiche l'hai scolpito?! Per esempio:

:)


Questo è il problema, è quello che deve essere "formulato" correttamente, ho sempre avuto un buon senso della logica, ma è da un mese che non riesco a farlo ((((((((
 
niformalka:

Questo è il problema, è quello che deve essere "formulato" correttamente, mi è sempre andata bene la logica, ma non riesco a farlo da un mese a questa parte ((((((((

L'aiuto è a portata di mano!

Documentazione Tutorial TA Codice base Articoli

 

"if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {"

Secondo me, in questo esempio mancano delle parentesi: 3 di apertura e 2 di chiusura. Consiglio all'autore del gufo di controllare se tutte le parentesi corrispondono.

Io lo scriverei così:

se ((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100)) {

 
oDin48:

"if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {"

Secondo me, in questo esempio mancano delle parentesi: 3 di apertura e 2 di chiusura. Consiglio all'autore del gufo di controllare se tutte le parentesi corrispondono.

Io lo scriverei così:

se ((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100)) {


provato, mostra ancora un errore alla fine dell'elenco
 
oDin48:

In questo esempio credo che manchino 3 parentesi di apertura e 2 di chiusura. Consiglio all'autore del gufo di controllare se tutte le parentesi corrispondono.

Anche Notepad++ è una buona idea, in Notepad stesso si sceglie la sintassi C++ per il codice mql4, nel menu impostazioni la tabulazione dovrebbe essere impostata su cp3 (di default sembra essere 4). A colpo d'occhio, ci sono due vantaggi:

1. evidenziazione di variabili con nomi simili in tutto il codice

2. evidenziazione delle parentesi quadre ovunque siano nel codice (compresa l'evidenziazione verticale se il codice è allineato a tab). Qualsiasi parentesi - rotonda, riccia o quadrata.

E, ultimo ma non meno importante, pratico find-and-replace (anche nelle selezioni), etichettatura (che "segna"), in generale un ambiente di sviluppo semplice e non complicato. Se lo si combina con il meta-editor, si ottiene non uno studio, naturalmente, ma un tandem moderatamente potente.

 

Buona giornata a tutti voi!

Ho uno script che piazza gli ordini in un CU.

Per favore, aiutatemi a cambiarlo in modo che lo spread sia preso in considerazione.

Per esempio una coppia GBPCAD spread 10 - più ordini sono Sell - quindi TP dovrebbe essere a 1.7010 e stop loss a 1.7000 (1.6999 è ideale))

Grazie


consigliare come mettere lo spoiler

//+------------------------------------------------------------------+
//|                                                    ZeroLevel.mq4 |
//|                                                          VadimVP |
//|                                                poluyan@fxmail.ru |
/*
 Скрипт поставит TakeProfit и StopLoss у открытых ордеров на текущем
 инструменте на уровень безубыточности.
 Расчет ведется только для ордеров текущего инструмента.
 Учитывает своп и комиссии. Работает при любых Digits.
 Точность +/- размер спреда.
 Об успешности изменений сообщит в диалоговом окне.
 Проверьте, включена ли опция "разрешить советнику торговать". 
*/
//| 
//+------------------------------------------------------------------+
#property copyright "VadimVP"
#property link      "poluyan@fxmail.ru"
 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int kol=0;
   int kolOK=0;
   int i=0;
   double lots=0;
   double sum=0;
   double sum1=0;
   for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ; 
       kol=kol+1;
      }
      if (OrderType()==OP_SELL)
      {
       lots=lots-OrderLots();
       sum=sum-OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ;
       kol=kol+1;
      }
   }
   double zeroprice=0;
   if (lots!=0) zeroprice=sum/lots;
   zeroprice = (MathRound(zeroprice*MathPow(10,Digits)))/MathPow(10,Digits);

   
//-----
 Alert ("!!!  Пожалуйста дождитель окончания работы скрипта!");
 int res = 0;
 for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
        
         if (zeroprice>Ask) 
         { if (OrderType()==OP_BUY) {if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;}    }
           if (OrderType()==OP_SELL){if (zeroprice == OrderStopLoss()) res=res+1; else { if (  OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;}     } }
         if (zeroprice<Bid) 
         { if (OrderType()==OP_BUY) {if (zeroprice == OrderStopLoss()) res=res+1; else { if (  OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;} }
           if (OrderType()==OP_SELL){if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;}    } } 
          
   }
 Alert ("***************************************************");
 Alert ("Цена безубыточности "+DoubleToStr(zeroprice,Digits));
 if (kol==res) Alert ("Все ордера успешно изменены! Точка безубыточности выставлена. ОК!"); else Alert ("!!! Внимание!!! Не удалось изменить - " +(kol-res)+ " ордера из "+kol+" имеющихся");
 Alert ("************ информация от ZeroLevel script ************");
 
//------

   return(0);
  }