-
Scalierung ändern
Vielleicht könnte man das mit WindowsPriceMax() machen, also ein Object, Rectangle, welches farblos ist und 10 Pips überhalb des Preises angezeigt wird. Objekte lassen sich doch dauerhaft anzeigen? double top=WindowPriceMax(); double bottom=WindowPriceMin(); datetime left=Time[WindowFirstVisibleBar()]; int right_bound=WindowFirstVisibleBar()-WindowBarsPerChart(); if(right_bound<0) right_bound=0; datetime right=Time[right_bound]+Period()*60; //---- ObjectCreate("Padding_rect",OBJ_RECTANGLE,0,left,top,right,bottom); ObjectSet("Padding_rect",OBJPROP_BACK,true); ObjectSet("Padding_rect",OBJPROP_COLOR,Blue); WindowRedraw(); Irgendiwe damit?^^
-
Scalierung ändern
Ja, und das ist das Problem, wäre doch praktisch wenn der Kurs durch die Decke geht und man immer 10 Pips Platz hat.
-
Pip_Calculator
Habe gestern zu Übungszwecken einen Pipkalkulator programmiert, vielleicht kann der eine oder andere ihn ja brauchen. Funktioniert auf EURO-Konten, der Dezimalpunkt trennt die Tausender. //+------------------------------------------------------------------+ //| _vikke@ www.tom-next.com Pip_Calculator.mq4 | //| | //+------------------------------------------------------------------+ #property copyright "_vikke@ www.tom-next.com" #property indicator_chart_window extern int Balance = 10000; extern double Risk = 3.0; extern color Color1 = Aqua; extern color Color2 = Yellow; extern int Font_Size = 13; extern string Font = "Courier"; string x_per_str[] = {" PIPS","EURUSD","EURJPY","EURGBP","USDCHF","USDCAD","GBPUSD","AUDUSD"}; string pip_array[] = {" 12"," 15"," 20", " 25", " 30", " 35", " 40", " 45", " 50"}; double pip_a[] = {12,15,20,25,30,35,40,45,50}; //--------------------------------------------------------------------- int init(){ return(0); } //--------------------------------------------------------------------- int deinit(){ ObjectsDeleteAll(0, OBJ_LABEL); return(0); } //---------------------------------------------------------------------- int start(){ double maxriskeuro = Balance*Risk/100; double multi; double eurusd = iClose("EURUSD",0,0); double euraud = iClose("EURAUD",0,0); double eurcad = iClose("EURCAD",0,0); double eurgbp = iClose("EURGBP",0,0); int x,y; for(x=0;x<1;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("EURUSD",0,y))*pip_a[y]))*100)/3,1), Font_Size, Font, Color1); } for(x=1;x<2;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("EURJPY",0,y))*pip_a[y]))*1)/3,1), Font_Size, Font, Color1); } for(x=2;x<3;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("EURGBP",0,y))*pip_a[y]))*100)/3,1), Font_Size, Font, Color1); } for(x=3;x<4;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("USDCHF",0,y))*pip_a[y]))*100)*eurusd/3,1), Font_Size, Font, Color1); } for(x=4;x<5;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("USDCAD",0,y))*pip_a[y]))*100)*eurusd/3,1), Font_Size, Font, Color1); } for(x=5;x<6;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("GBPUSD",0,y))*pip_a[y]))*100)*eurgbp/3,1), Font_Size, Font, Color1); } for(x=6;x<7;x++) for( y=0;y<9;y++) { create_obj("ss"+x+y, x*80+80, y*20+40, DoubleToStr(((maxriskeuro/(10/(iClose("AUDUSD",0,y))*pip_a[y]))*100)*euraud/3,1), Font_Size, Font, Color1); } //------------------------------------ for(y=0;y<9;y++) { create_obj("pip"+y, x, y*20+40, pip_array[y], Font_Size, Font, Color2); } for(x=0;x<8;x++) { create_obj("perString"+x, x*80, y+10, x_per_str[x], Font_Size, Font, Color2); } return(0); } //------------------------------------------------------------------------------------------------------------------------------------- void create_obj(string obj_name, int x_dist, int y_dist, string dbl_var, int font_size, string font, color color_) { ObjectCreate(obj_name,OBJ_LABEL,0,0,0,0,0); ObjectSet(obj_name,OBJPROP_XDISTANCE,x_dist); ObjectSet(obj_name,OBJPROP_YDISTANCE,y_dist); ObjectSetText(obj_name,dbl_var, font_size, font, color_); }
-
Scalierung ändern
Gibt es eigentlich die Möglichkeit einen Preisabstand von jeweils 10 Pips unten und oben vom Preis zum Rand zu lassen? Meist sieht man ja nicht was unterhalb kommt, weswegen sowas sicher sinnvoll wäre.
-
Chartbuttons
Ich weiß das die Rechte der weiter entwickelten Gui von einigen aus dem ff.de Forum gekauft wurden, oder sie sind zumindest an dem Geschäft beteiligt. Deswegen gibts den Link wo ich das Teil her habe, nämlich von Orginalautor: http://www.forexfact...d.php?p=5803423
-
Versendet unerwünschte Orders
Ich schreibe gerade ein bissi mit der mt4gui und habe versucht Buy und Sell Buttons zu benutzen, was auch geglückt ist, jedoch versendet er mir bei einer Sellorder immer auch eine Longorder - seltsam. Das witzige ist, dass wenn ich auf eine Longorder gehe, die weiter oben im Code ist, dann bekomme ich auch nur eine Longorder. Irgendwie nimmt der Code bei einer Sellorder die Buyorder noch mit ;-( int slide_punkt, slide_punkt2; if (tbIsClicked(hwnd,L1_btn)) {ticket =1; ticket2=0; slide_punkt = 4;} else {ticket = 0;} if (tbIsClicked(hwnd,L2_btn)) {ticket =1; slide_punkt = 8;} else {ticket = 0;} if (tbIsClicked(hwnd,L3_btn)) {ticket =1; slide_punkt = 14;} else {ticket = 0;} //if (tbIsClicked(hwnd,L10_btn)) {ticket =1; long1 = 50; } acc_balance = AccountBalance(); max_risk = 3; int t_long1 = iLowest(Symbol(), 0, MODE_LOW, slide_punkt, 0); double long1 = MathAbs(((iLow(Symbol(),0,(iLowest(Symbol(),0,MODE_LOW,slide_punkt,0)))-Bid)/Point/10))+3.0; if(long1 < 12) long1 = 12; double Pipwert=10/Close[0]; double Maxriskeuro =acc_balance*max_risk/1000; double L1 = (Maxriskeuro/Pipwert/long1)*10; Lots = L1; TP = 500; SL = (long1/10000); ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,0,0,0,0,CLR_NONE); if(ticket<1) { error=GetLastError(); Print("Error = ",ErrorDescription(error)); } else { OrderSelect(ticket,SELECT_BY_TICKET); OrderModify(ticket,OrderOpenPrice(),Bid - SL, 0,0); OrderPrint(); } //---------------------------------------------------------------------------------------------- if (tbIsClicked(hwnd,S1_btn)) {ticket2 =1; slide_punkt2 = 4;} else {ticket2 = 0;} if (tbIsClicked(hwnd,S2_btn)) {ticket2 =1; slide_punkt2 = 8;} else {ticket2 = 0;} if (tbIsClicked(hwnd,S3_btn)) {ticket2 =1; slide_punkt2 = 14; }else {ticket2 = 0;} int t_short1 = iHighest(Symbol(), 0, MODE_HIGH,slide_punkt2, 0); double short1 = ((iHigh(Symbol(),0,(iHighest(Symbol(),0,MODE_HIGH,slide_punkt2,0)))-Bid)/Point/10)+2.0; if(short1 < 12) short1 = 12; //double Pipwert=10/Close[0]; //double Maxriskeuro =acc_balance*max_risk/1000; double S1 = (Maxriskeuro/Pipwert/short1)*10; Lots = S1; TP = 500; SL = (short1/10000); ticket2=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,0,0,0,0,CLR_NONE); if(ticket2<1) { error=GetLastError(); Print("Error = ",ErrorDescription(error)); } else { OrderSelect(ticket2,SELECT_BY_TICKET); OrderModify(ticket2,OrderOpenPrice(),Ask + SL, 0,0); OrderPrint(); } return(0); }
-
Horizontale Linie als Wert für Indikator auslesen
Grrks, bekomme bei drop_prive 0.00000 und bei drop_time 0 heraus.
-
Horizontale Linie als Wert für Indikator auslesen
Weiß jemand was mit dem Script nicht stimmt, es werden keine Linien eingezeichnet. //+------------------------------------ ------------------------------+ int start() { double drop_price=WindowPriceOnDropped(); datetime drop_time=WindowTimeOnDropped(); //---- may be undefined (zero) if(drop_time>0) { ObjectCreate("Dropped price line", OBJ_HLINE, 0,0, drop_price); ObjectCreate("Dropped time line", OBJ_VLINE, 0, drop_time,0); } return(0); } //+------------------------------------ ------------------------------+
-
Horizontale Linie als Wert für Indikator auslesen
Mit der MT4gui.dll hat das Thema wieder aktualität. Mittels eines Buttons könnte man eine Horizontale auf dem letzten Kurs darstellen lassen, wenn man diese dann auf den Slidepreis zieht, sollte ein Wert zurückgegeben werden. Mit WindowPriceOnDropped() sollte das irgendwie gehen. Hat jemand eine Idee zu wie das konkreter zu bewerkstellen ist?
-
Chartbuttons
Weiß jemand wie man irgendwie verschiedene Zeilen auf einem Button darstellen lassen kann? "\n" geht nicht^^ Wäre doch toll die Buttons zu zweckentfremden.;-) double bid = Bid; double atr = iATR(Symbol(),1440,20,0)*10000; string atr_ = DoubleToStr(atr,0); string bid_ = DoubleToStr(bid,4); b3= tbPutObject(hwnd,"button",-345,0,345,300,"Price: "+bid_+"\n"+"ATR: "+atr_); .... Erledigt, gibt ja noch Labels^^
-
Bewegung beim EUR/CHF
Currencies sind auch erst in neuerer Zeit für Privatanleger handelbar, selbst Goldmann ist da erst vor ein paar Jahrzehnten eingestiegen - ist also kein klassisches Asset. Ich denke, dass es sehr wohl fair zugeht, nicht nur weil es geradezu das Geschäft der Nationalbanken ist, sondern weil die SNB hierbei Nachfrage schafft um sich zu schützen.
-
Chartbuttons
https://www.fx1.net/...p/MT4GUI/MT4GUI Mit diesen DLLs lassen sich Buttons auf einen MT4 Chart legen, so könnte man das lästige Scriptfenster umgehen und aus dem Chart heraus die Orders tätigen. Mache das momentan noch über Scripts, jedoch ist dies Möglichkeit sehr verführend^^ Edit: Gerade ausprobiert, geht sehr gut, sogar aftermarket. C WINDOWS system32 folder.zip experts files folder.zip
-
Bewegung beim EUR/CHF
Das hoffe ich auch, habe den USDCHF immer über EURUSD laufen wegen der Abwärtsvisualisierung(muss immer alles short sehen^^), nun muss ich noch ne Variable mit einbeziehen, was mir gar nicht schmeckt. Am liebsten hätte ich den EURUSD mit reziproker Darstellung überhalb, nur leider ist das schwer mit MT4 zu bewerkstellen.
- Gedanken zum Stop Loss
- Gedanken zum Stop Loss
vikke
Addict
-
Benutzer seit
-
Letzter Besuch