導航:首頁 > 編程語言 > mt4編程初級手冊

mt4編程初級手冊

發布時間:2023-09-01 11:52:47

① 股票公式編程 MT4編程 請高手幫忙!!

INPUT:K1(2010,1990,3000),K2(1,1,12),K3(1,1,31);

RQ:=(K1-1900)*10000+K2*100+K3;

指定日期價:REF(C,BARSLAST(DATE<=RQ)),LINETHICK0;

漲跌幅:(C-指定日期價)/指定日期價*100,LINETHICK0;{相對於指定日期價的漲跌幅}

{漲跌幅:(C-REF(C,1))/REF(C,1)*100,LINETHICK0;}{相對於前一天的漲跌幅}

{根據條件畫區間柱子}

STICKLINE(C>指定日期價AND漲跌幅>5ANDBARSTATUS=2,指定日期價,C,8,0),COLORAA00AA;

STICKLINE(C<指定日期價AND漲跌幅<-5ANDBARSTATUS=2,指定日期價,C,8,1),COLORFFAAAA;

{下面是畫K線}

STICKLINE(C>O,H,L,0,0),COLOR5050DD;

STICKLINE(C>O,O,C,8,0),COLOR5050DD;

STICKLINE(C>O,O,C,7,0),COLOR8080DD;

STICKLINE(C>O,O,C,6,0),COLORA0A0DD;

STICKLINE(C>O,O,C,5,0),COLORC0C0DD;

STICKLINE(C>O,O,C,4,0),COLORD0D0DD;

STICKLINE(C>O,O,C,3,0),COLORF0F0FD;

STICKLINE(C>O,O,C,2,0),COLORF0F0FF;

STICKLINE(C>O,O,C,1,0),COLOREEEFFF;

STICKLINE(C<=O,H,L,0,0),COLORDDDD50;

STICKLINE(C<=O,O,C,8,0),COLORDDDD50;

STICKLINE(C<=O,O,C,7,0),COLORDDDD80;

STICKLINE(C<=O,O,C,6,0),COLORDDDD90;

STICKLINE(C<=O,O,C,5,0),COLORDDDDA0;

STICKLINE(C<=O,O,C,4,0),COLORDDDDB0;

STICKLINE(C<=O,O,C,3,0),COLORFDFDC0;

STICKLINE(C<=O,O,C,2,0),COLORFFFFE0;

STICKLINE(C<=O,O,C,1,0),COLORFCFCF9;

{標示指定日期價}

PARTLINE(指定日期價,DATE>=RQ),COLORFFAA99,DOTLINE;{畫橫虛線----指定日期價}

DRAWTEXT(BARSTATUS=2,指定日期價,NUMTOSTR(BARSLAST(DATE<=RQ))+'天前價'+NUMTOSTR(指定日期價)),COLOR00FFFF,ALIGN2;{顯示指定日期價文字}

{將如下文字復制粘貼到參數精靈

*******************************

指定以下日期

Param#1年

Param#2月

Param#3日

********************************

};

② 請教:外匯MT4的EA編程中,開倉函數OrderSend的參數講解

price就是你的購買價格,
如果你是開倉多單,那麼就是ASK價,空單則是BID價...
下廳談面扮乎碰是多單的範例:
OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss * Point,Ask + TakeProfit * Point, "我頃雹的訂單", 12345, 0, Green);

③ MT4編程:如何把一個函數自定義返回數組

方法1:利用全局變數分析:全局變數作為C語言的一個知識點,雖然我們都了解它的特點,但在實際教學過程中應用得並不是很多。由於全局變數的作用域是從定義變數開始直到程序結束,而對於編寫有多個返回值的C語言函數,我們可以考慮把要返回的多個值定義成全局變數。當函數被調用時,全局變數被更改,我們再把更改後的全局變數值應用於主調函數中。函數被調用後被更改後的全局變數值即為函數的數個返回值。下面以一個實例演示該方法的應用。實例1:編寫函數求3個數中的最大值與最小值。方法:把最大值、最小值分別定義成2個全局變數max、min,在用戶自定義函數中把求出來的最大值與最小值分別賦給全局變數max、min。函數調用完畢後全局變數的max、min值即保存了函數要求返回的值。程序參考代碼如下:#include"stdio.h"#include"conio.h"intmax,min;/*定義兩個全局變數用於保存函數返回值*/voidmax_min(inta,intb,intc)/*定義求最大最小值的函數*/{max=min=a;/*初始化最大最小值*/if(maxif(maxif(min>b)min=b;if(min>c)min=c;}main(){intx,y,z;printf("請輸入3個整數:\n");scanf("%d,%d,%d",&x,&y,&z);max_min(x,y,z);/*調用求最大值與最小值的函數*/printf("三個數中的最大值為:%d;最小值為:%d",max,min);/*輸出最大值與最小值*/getch();}調試結果如下:請輸入3個整數:5,-6,2三個數中的最大值為:5;最小值為:-6注意:該方法雖然可以實現有多個返回值的函數,但由於全局變數不能保證值的正確性(因為其作用域是全局,所以程序范圍內都可以修改它的值,如果出現錯誤將非常難以發現),並且全局變數增加了程序間模塊的耦合,所以該方法要慎用。方法2:傳遞數組指針分析:在教學過程中,我們知道C語言函數參數的傳遞方式有值傳遞與地址傳遞。當進行值傳遞時,主調函數把實參的值復制給形參,形參獲得從主調函數傳遞過來的值運行函數。在值傳遞過程中被調函數參數值的更改不能導致實參值的更改。而如果是地址傳遞,由於傳遞過程中從實參傳遞過來的是地址,所以被調函數中形參值的更改會直接導致實參值的更改。因此,我們可以考慮把多個返回值作為數組元素定義成一個數組的形式,並使該數組的地址作為函數的形式參數,以傳址方式傳遞數組參數。函數被調用後,形參數組元素改變導致實參改變,我們再從改變後的實參數組元素中獲得函數的多個返回值。以下實例演示該方法的應用。實例2:編寫函數求一維整形數組的最大值與最小值,並把最大值與最小值返回給主調函數。方法:以指針方式傳遞該一維數組的地址,然後把數組的最大值與數組的第一個元素交換,把數組的最小值與最後一個元素交換。函數被調用完畢後,實參數組中的第一元素為數組的最大值,實參數組中最後一個元素為數組的最小值,從而實現返回數組的最大值與最小值的功能。程序參考代碼如下:#include"stdio.h"#include"conio.h"voidmax_min(int*ptr,intn)/*定義求數組最大值最小值的函數,傳遞數組指針*/{inti,j,k;/*j保存最大值所在位置,k保存最小值所在位置*/int*temp;/*用於交換位置*/*temp=*ptr;for(i=0;i{if(*ptr*(ptr+i))/*最小值與最後一個元素進行交換*/{j=i;*temp=*(ptr+n-1);*(ptr+n-1)=*(ptr+j);*(ptr+j)=*temp;}}}/*調用最大最小值函數*/main(){intA[6],i;for(i=0;i<6;i++)scanf("%d",&A[i]);max_min(A,6);printf("max=%d,min=%d\n\n",A[0],A[5]);getch();}調試結果如下:請輸入6個整形數,以空格隔開:58932-64max=32,min=-6注意:該方法適用於多個返回值的數據類型一致的情況。當返回值數據類型不一致時,不適用該方法。

④ 怎樣學習外匯MT4編程之MQL4語言學習入門

1. 首先,你得下載一個MT4平台軟體,然後打開裡面的MQL編輯器。
2. 選擇一個交易品種,注冊賬號(模擬或者真實都可以)在歷史中心下載其對應的歷史數據。
3. 在MT4官方網站上學習編程常用的語句。在MQL4 Reference開始對基本語法的學習.對於有編程基礎的人來說,這一點尤為輕松。這一階段只要了解什麼樣的內容在對應的什麼位置,便於以後查找,而不需要完全背下來,或者掌握。乾脆點的就直接翻看下即可。
4. 打開MT4中已有的MQL4代碼段,比如均線指標。對照看其中的語句,揣摩均線的邏輯意思。不懂的回到第二步中查找,或者網路之。
5. 自己學著簡單的修改均線的代碼,通過修改參數,修改變數,看看MT4中指標是怎樣改變的。
6. 然後再修改其他相關指標,學習更多變數的修改,至此,MQL4入門學習就成功了。
接下來如果要編寫難度更大的代碼,或者要編寫EA,將在後一階段再給大家介紹更詳細的學習內容。

⑤ 外匯交易必備,《MT4軟體如何使用和編程EA

首先把你的EA拷貝MT4的安裝目錄上,有一個文件夾叫Expert Advice. 拷貝到它下面,就可以在MT4軟體的列表裡頭看見你的EA了。 然後。找一個想交易的貨幣圖,拉出EA到貨幣圖上。圖上就會出現一個人臉圖標 設置交易參數,點擊開始。

⑥ mt4編程如何限制一根線剛止盈出場又進場

1、畫水平線:

首先,在MetaEditor編輯器中創建一個客戶指標文件,名字可以任意,我這里就把它命名為Lesson1_DrawLine。

然後,在其中的start()函數中添加下面的代碼:

⑦ 外匯Mt4編程自己編寫EA如何實現每隔一個時間就開一單

if (iTime(NULL,0,0)= 客戶自定義);
{

ticket_buy=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGIC_MA,0,Blue);
if(ticket_buy>0)
{
billbuy_ok=true;
if(OrderSelect(ticket_buy,SELECT_BY_TICKET,MODE_TRADES))
{
Print("BUY order opened : ",OrderOpenPrice());
/* if(SL>0 && OrderStopLoss()==0)
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-SL*Point,OrderTakeProfit(),0,Green);
if(TP>0 && OrderTakeProfit()==0)
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+TP*Point,0,Green);
*/
}
}
else
{
billbuy_ok=false;

Print("Error opening BUY order : ",GetLastError());
}

原理大概就是這樣

⑧ MT4中,EA中怎麼平倉,不是用直接用Orderclose,而是用orderslect,orderticket,但是我的orderticket

Print(i=="訂單號碼",OrderTicket());
i==這里不對吧,
可以這樣寫,Print("i=",i," 訂單號碼=",OrderTicket());

//平倉可以用這個
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

⑨ mt4ea編程中如何引用自定義指標具體怎麼做

doubleiCustom(stringsymbol,inttimeframe,stringname,...,intmode,intshift)
關鍵是將引用指標的名稱寫正確,放在這個參數的位置stringname.
name後面需要把指標中的參數,按順序寫完.
後面的mode指的是引用指標裡面的第幾畫線數組,一般是0-7,最多有8個.具體每個數組代表的意義,需要從引用指標裡面找到.

閱讀全文

與mt4編程初級手冊相關的資料

熱點內容
伺服器如何訪問伺服器失敗 瀏覽:873
android進度球 瀏覽:999
Linux造成xfs文件夾 瀏覽:455
華為手機怎麼修改wifi加密類型 瀏覽:248
伺服器封口是什麼意思 瀏覽:741
有限元分析是演算法嗎 瀏覽:901
空氣壓縮機性能曲線 瀏覽:20
京城程序員2019 瀏覽:403
android新系統 瀏覽:510
安卓80有什麼bug 瀏覽:678
如何做單機伺服器 瀏覽:943
校訊通查成績怎麼顯示伺服器異常 瀏覽:882
冰箱壓縮機工作壓力是多少 瀏覽:408
程序員20多平米租房 瀏覽:451
電工知識用線的演算法 瀏覽:338
極光推送php伺服器端 瀏覽:5
怎麼用命令方塊控制僵屍 瀏覽:774
大型雲伺服器有哪些 瀏覽:466
解壓版三國街機 瀏覽:424
去中心化app裡麵包含什麼 瀏覽:950