Domyślny LOT dla danej pary i TF

O jezykach programowania w platformach i nie tylko.
krzem78
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 15 maja 2011, 18:18

Domyślny LOT dla danej pary i TF

Nieprzeczytany post autor: krzem78 »

Cześć

W Metatrader 4 chciałbym mieć ustawioną domyślnie wielkość pozycji w LOT, w zależności od:
- danej pary walutowej
- (jakby się dało to też) od aktualnie otwartego wykresu (np. 0,04 LOT-a dla H4 i 0,05 LOT-a dla H1)

Czy istnieje taka możliwość?

Awatar użytkownika
kris007
Pasjonat
Pasjonat
Posty: 551
Rejestracja: 23 sty 2008, 22:50

Re: Domyślny LOT dla danej pary i TF

Nieprzeczytany post autor: kris007 »

W samym Metatraderze to nie, ale już w skrypcie za pomocą którego będziesz składał zlecenia można, np tak:

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                                          Buy.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

#include <stdlib.mqh>

#property show_inputs

extern double TakeProfit = 0;
extern double StopLoss   = 0;
extern string Comments   = "B";
extern int    Magic      = 123;
extern int    Slippage   = 30;

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
  double sl=0, tp=0; 

  if (StopLoss  >0) sl=Ask-StopLoss*Point;   else sl=0; 
  if (TakeProfit>0) tp=Ask+TakeProfit*Point; else tp=0; 
  
//----
int ticket=-1;
  while(ticket<0)
    {
    ticket=OrderSend(Symbol(),OP_BUY,WielkoscPozycji(),Ask,Slippage,sl,tp,Comments,Magic,0,clrBlue); 
    if(ticket<0)Print("Blad otwarcia pozycji (",ErrorDescription(GetLastError()),")");
    }
//----
   return(0);
  }
  
//+------------------------------------------------------------------+
double WielkoscPozycji() {

double Lot = 0.01; //wartość dla wszystkich pozostałych par.

//----
if ((Symbol() == ("EURUSD") && Period()) == true){
         
                       switch (Period()) 
                             {
                               case     1: Lot = 0.01;  break;
                               case     5: Lot = 0.02;  break; 
                               case    15: Lot = 0.03;  break;
                               case    30: Lot = 0.04;  break;
                               case    60: Lot = 0.05;  break;
                               case   240: Lot = 0.06;  break;
                               case  1440: Lot = 0.07;  break; 
                               case 10080: Lot = 0.08;  break;
                               case 43200: Lot = 0.09;  break; 
                    
                             }
}

//----
if ((Symbol() == ("GBPUSD") && Period()) == true){
         
                       switch (Period()) 
                             {
                               case     1: Lot = 0.01;  break;
                               case     5: Lot = 0.02;  break; 
                               case    15: Lot = 0.03;  break;
                               case    30: Lot = 0.04;  break;
                               case    60: Lot = 0.05;  break;
                               case   240: Lot = 0.06;  break;
                               case  1440: Lot = 0.07;  break; 
                               case 10080: Lot = 0.08;  break;
                               case 43200: Lot = 0.09;  break; 
                    
                             }
}
//----

   return (Lot);
}
//+------------------------------------------------------------------+
Wybór skryptu zależy już od Ciebie, jest ich wiele, wystarczy później tylko dopisać powyższe warunki.

ODPOWIEDZ