CurrencySlopeStrength

CurrencySlopeStrength

开心版无广告230

更新日期:2022-02-22分类标签: 语言:中文平台:没限制

19 人已下载 手机查看

CurrencySlopeStrength

//+——————————————————————+
//| CurrencySlopeStrength.mq4 |
//| Copyright 2012, Deltabron – Paul Geirnaerdt |
//| http://www.deltabron.nl |
//| mrtools made TMA Halflength a user controlled |
//| feature and added Price to the mix |
//+——————————————————————+
#property copyright “Copyright 2012, Deltabron – Paul Geirnaerdt”
#property link “http://www.deltabron.nl”

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_levelcolor MediumOrchid

//
//
//
//
//

#define version “v1.0.3.1”
#define EPSILON 0.00000001
#define CURRENCYCOUNT 8

//
//
//
//
//
extern int BARS = 500;
extern string gen = “—-General inputs—-“;
extern bool autoSymbols = false;
extern string symbolsToWeigh = “GBPNZD,EURNZD,GBPAUD,GBPCAD,GBPJPY,GBPCHF,CADJPY,EURCAD,EURAUD,USDCHF,GBPUSD,EURJPY,NZDJPY,AUDCHF,AUDJPY,USDJPY,EURUSD,NZDCHF,CADCHF,AUDNZD,NZDUSD,CHFJPY,AUDCAD,USDCAD,NZDCAD,AUDUSD,EURCHF,EURGBP”;
extern string nonPropFont = “Lucida Console”;
extern bool showOnlySymbolOnChart = true;

extern string ind = “—-Indicator inputs—-“;
extern double HalfLength = 20;
extern int Price = PRICE_WEIGHTED;
extern bool autoTimeFrame = true;
extern string ind_tf = “timeFrame M1,M5,M15,M30,H1,H4,D1,W1,MN”;
extern string timeFrame = “D1”;
extern bool ignoreFuture = false;
extern bool showCrossAlerts = true;
extern double differenceThreshold = 0.8;

extern string cur = “—-Currency inputs—-“;
extern bool USD = true;
extern bool EUR = true;
extern bool GBP = true;
extern bool CHF = true;
extern bool JPY = true;
extern bool AUD = true;
extern bool CAD = true;
extern bool NZD = true;

extern string col = “—-Color inputs—-“;
extern color Color_USD = Green;
extern color Color_EUR = DeepSkyBlue;
extern color Color_GBP = Red;
extern color Color_CHF = Chocolate;
extern color Color_JPY = FireBrick;
extern color Color_AUD = DarkOrange;
extern color Color_CAD = Purple;
extern color Color_NZD = Teal;
extern color colorWeakCross = OrangeRed;
extern color colorNormalCross = Gold;
extern color colorStrongCross = LimeGreen;
extern color colorDifference = 0x303000;
extern int Line_Thickness = 2;

//
//
//
//
//

string indicatorName = “CurrencySlopeStrength”;
string shortName;
int userTimeFrame;
string almostUniqueIndex;

//
//
//
//
//

double arrUSD[];
double arrEUR[];
double arrGBP[];
double arrCHF[];
double arrJPY[];
double arrAUD[];
double arrCAD[];
double arrNZD[];

//
//
//
//
//

int symbolCount;
string symbolNames[];
string currencyNames[CURRENCYCOUNT] = { “USD”, “EUR”, “GBP”, “CHF”, “JPY”, “AUD”, “CAD”, “NZD” };
double currencyValues[CURRENCYCOUNT]; // Currency slope strength
double currencyValuesPrior[CURRENCYCOUNT]; // Currency slope strength prior bar
double currencyOccurrences[CURRENCYCOUNT]; // Holds the number of occurrences of each currency in symbols
color currencyColors[CURRENCYCOUNT];

//
//
//
//
//

int verticalShift = 14;
int verticalOffset = 30;
int horizontalShift = 100;
int horizontalOffset = 10;

//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
//
//

int init()
{
HalfLength = MathMax(HalfLength,1);
initSymbols();

SetIndexBuffer(0,arrUSD); SetIndexLabel(0,”USD”); currencyColors[0] = Color_USD;
SetIndexBuffer(1,arrEUR); SetIndexLabel(1,”EUR”); currencyColors[1] = Color_EUR;
SetIndexBuffer(2,arrGBP); SetIndexLabel(2,”GBP”); currencyColors[2] = Color_GBP;
SetIndexBuffer(3,arrCHF); SetIndexLabel(3,”CHF”); currencyColors[3] = Color_CHF;
SetIndexBuffer(4,arrJPY); SetIndexLabel(4,”JPY”); currencyColors[4] = Color_JPY;
SetIndexBuffer(5,arrAUD); SetIndexLabel(5,”AUD”); currencyColors[5] = Color_AUD;
SetIndexBuffer(6,arrCAD); SetIndexLabel(6,”CAD”); currencyColors[6] = Color_CAD;
SetIndexBuffer(7,arrNZD); SetIndexLabel(7,”NZD”); currencyColors[7] = Color_NZD;
SetLevelValue(0,0);

string now = TimeCurrent();
almostUniqueIndex = StringSubstr(now, StringLen(now) – 3);

shortName = indicatorName + ” – ” + version;
IndicatorShortName(shortName);
return(0);
}

//+——————————————————————+
//| Initialize Symbols Array |
//+——————————————————————+
//
//

int initSymbols()
{
int i;
string symbolExtraChars = StringSubstr(Symbol(),6,4);

//
//
//
//
//

symbolsToWeigh = StringTrimLeft(symbolsToWeigh);
symbolsToWeigh = StringTrimRight(symbolsToWeigh);

//
//
//
//
//

if (StringSubstr(symbolsToWeigh, StringLen(symbolsToWeigh)-1) != “,”)
{
symbolsToWeigh = StringConcatenate(symbolsToWeigh, “,”);
}

//
//
//
//
//

if (autoSymbols)
{
createSymbolNamesArray();
}
else
{

i = StringFind(symbolsToWeigh, “,”);
while (i != -1)
{
int size = ArraySize(symbolNames);

ArrayResize(symbolNames, size + 1);

symbolNames[size] = StringConcatenate(StringSubstr(symbolsToWeigh, 0, i),symbolExtraChars);

symbolsToWeigh = StringSubstr(symbolsToWeigh, i + 1);
i = StringFind(symbolsToWeigh, “,”);
}
}

//
//
//
//
//

if (showOnlySymbolOnChart)
{
symbolCount = ArraySize(symbolNames);
string tempNames[];
for (i = 0; i < symbolCount; i++)
{
for (int j = 0; j < CURRENCYCOUNT; j++)
{
if (StringFind( Symbol(), currencyNames[j] ) == -1)
{
break;
}
if (StringFind(symbolNames[i], currencyNames[j] ) != -1)
{
size = ArraySize(tempNames);
ArrayResize(tempNames, size + 1);
tempNames[size] = symbolNames[i];
break;
}
}
}
for (i = 0; i < ArraySize(tempNames); i++)
{
ArrayResize(symbolNames, i+1);
symbolNames[i] = tempNames[i];
}
}

symbolCount = ArraySize(symbolNames);

for (i = 0; i < symbolCount; i++)
{
int currencyIndex = GetCurrencyIndex(StringSubstr(symbolNames[i],0,3));
currencyOccurrences[currencyIndex]++;

currencyIndex = GetCurrencyIndex(StringSubstr(symbolNames[i],3,3));
currencyOccurrences[currencyIndex]++;
}

//
//
//
//
//

userTimeFrame = PERIOD_D1;
if (autoTimeFrame) { userTimeFrame = Period(); }
else
{
if (timeFrame == “M1” ) userTimeFrame = PERIOD_M1;
else if (timeFrame == “M5” ) userTimeFrame = PERIOD_M5;
else if (timeFrame == “M15”) userTimeFrame = PERIOD_M15;
else if (timeFrame == “M30”) userTimeFrame = PERIOD_M30;
else if (timeFrame == “H1” ) userTimeFrame = PERIOD_H1;
else if (timeFrame == “H4” ) userTimeFrame = PERIOD_H4;
else if (timeFrame == “D1” ) userTimeFrame = PERIOD_D1;
else if (timeFrame == “W1” ) userTimeFrame = PERIOD_W1;
else if (timeFrame == “MN” ) userTimeFrame = PERIOD_MN1;
}

}

//+——————————————————————+
//| GetCurrencyIndex(string currency) |
//+——————————————————————+
//
//

int GetCurrencyIndex(string currency)
{
for (int i = 0; i < CURRENCYCOUNT; i++)
{
if (currencyNames[i] == currency)
{
return(i);
}
}
return (-1);
}

//+——————————————————————+
//| createSymbolNamesArray() |
//+——————————————————————+
//
//

void createSymbolNamesArray()
{
int hFileName = FileOpenHistory (“symbols.raw”, FILE_BIN|FILE_READ);
int recordCount = FileSize (hFileName) / 1936;
int counter = 0;

//
//
//
//
//

for (int i = 0; i < recordCount; i++)
{
string tempSymbol = StringTrimLeft (StringTrimRight (FileReadString (hFileName, 12)));
if (MarketInfo (tempSymbol, MODE_BID) > 0 && MarketInfo (tempSymbol, MODE_TRADEALLOWED))
{
ArrayResize(symbolNames, counter + 1);
symbolNames[counter] = tempSymbol;
counter++;
}
FileSeek(hFileName, 1924, SEEK_CUR);
}
FileClose(hFileName);
return (0);
}

//+——————————————————————+
//| Custom indicator deinitialization function |
//+——————————————————————+
//
//

int deinit()
{

int windex = WindowFind (shortName);
if (windex > 0)
{
ObjectsDeleteAll (windex);
}

return(0);
}

//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
//
//

int start()
{
int counted_bars=IndicatorCounted();
int i,j,limit;

if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars–;
limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
if(limit>BARS)limit=BARS;
//
//
//
//
//

for ( i = limit; i >= 0; i– )
{

for (j = 0; j < CURRENCYCOUNT; j++) { SetIndexStyle(j,DRAW_LINE,STYLE_SOLID,Line_Thickness,currencyColors[j]); }

int index;
double diff = 0.0;

ArrayInitialize(currencyValues, 0.0);
CalculateCurrencySlopeStrength(userTimeFrame,i);

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”USD”) != -1)) || (!showOnlySymbolOnChart && USD))
{
arrUSD[i] = currencyValues[0];
if (diff ==0) diff += currencyValues[0];
else diff -= currencyValues[0];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”EUR”) != -1)) || (!showOnlySymbolOnChart && EUR))
{
arrEUR[i] = currencyValues[1];
if (diff == 0) diff += currencyValues[1];
else diff -= currencyValues[1];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”GBP”) != -1)) || (!showOnlySymbolOnChart && GBP))
{
arrGBP[i] = currencyValues[2];
if (diff == 0) diff += currencyValues[2];
else diff -= currencyValues[2];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”CHF”)!= -1)) || (!showOnlySymbolOnChart && CHF))
{
arrCHF[i] = currencyValues[3];
if (diff == 0) diff += currencyValues[3];
else diff -= currencyValues[3];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”JPY”)!= -1)) || (!showOnlySymbolOnChart && JPY))
{
arrJPY[i] = currencyValues[4];
if (diff == 0) diff += currencyValues[4];
else diff -= currencyValues[4];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”AUD” )!= -1)) || ( !showOnlySymbolOnChart && AUD ) )
{
arrAUD[i] = currencyValues[5];
if (diff == 0) diff += currencyValues[5];
else diff -= currencyValues[5];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”CAD”)!= -1)) || (!showOnlySymbolOnChart && CAD))
{
arrCAD[i] = currencyValues[6];
if (diff == 0) diff += currencyValues[6];
else diff -= currencyValues[6];
}

//
//
//
//
//

if ((showOnlySymbolOnChart && (StringFind(Symbol(),”NZD”)!= -1)) || (!showOnlySymbolOnChart && NZD))
{
arrNZD[i] = currencyValues[7];
if (diff == 0) diff += currencyValues[7];
else diff -= currencyValues[7];
}

//
//
//
//
//

if ( i == 1 )
{
ArrayCopy(currencyValuesPrior,currencyValues);
}
if ( i == 0 )
{

ShowCurrencyTable();
}

//
//
//
//
//

if (showOnlySymbolOnChart && MathAbs(diff) > differenceThreshold)
{
int windex = WindowFind (shortName);
string objectName = almostUniqueIndex + “_diff_” + i;
if ( ObjectFind (objectName) == -1)
{
if (ObjectCreate (objectName, OBJ_VLINE, windex, Time[i], 0))
{
ObjectSet (objectName, OBJPROP_COLOR, colorDifference);
ObjectSet (objectName, OBJPROP_BACK, true);
ObjectSet (objectName, OBJPROP_WIDTH, 8);

}
}

}

}

return(0);
}

//+——————————————————————+
//| GetSlope() |
//+——————————————————————+
//
//

double GetSlope(string symbol, int tf, int shift)
{
double dblTma, dblPrev;
double gadblSlope = 0.0;

//
//
//
//
//

double atr = iATR(symbol,tf,100,shift+10) / 10;

if (atr != 0)
{
if (ignoreFuture)
{
dblTma = calcTmaTrue( symbol, tf, shift);
dblPrev = calcPrevTrue(symbol, tf, shift);
}
else
{
dblTma = calcTma(symbol,tf,shift);
dblPrev = calcTma(symbol,tf,shift+1);
}
gadblSlope = (dblTma – dblPrev) / atr;
}

return (gadblSlope);

}

//+——————————————————————+
//| calcTma() |
//+——————————————————————+
//
//

double calcTma(string symbol, int tf, int shift)
{
int jnx, knx;

//
//
//
//
//

double dblSum = (HalfLength+1) * iMA(symbol,tf,1,0,MODE_SMA,Price,shift);
double dblSumw = (HalfLength+1);

for (jnx = 1, knx = HalfLength; jnx <= HalfLength; jnx++, knx–)
{
dblSum += iMA(symbol,tf,1,0,MODE_SMA,Price,shift+jnx)*knx;
dblSumw += knx;

if (jnx <= shift)
{
dblSum += iMA(symbol,tf,1,0,MODE_SMA,Price,shift-jnx)*knx;
dblSumw += knx;
}
}

return (dblSum/dblSumw);
}

//+——————————————————————+
//| calcTmaTrue() |
//+——————————————————————+
//
//

double calcTmaTrue(string symbol, int tf, int inx )
{
return (iMA(symbol,tf,HalfLength,0, MODE_LWMA, PRICE_CLOSE,inx));
}

//+——————————————————————+
//| calcPrevTrue() |
//+——————————————————————+
//
//

double calcPrevTrue( string symbol, int tf, int inx )
{
double dblSum = (HalfLength+1) * iMA(symbol,tf,1,0,MODE_SMA,Price,inx+1);
double dblSumw = (HalfLength+1);
int jnx, knx;

dblSum += HalfLength * iMA(symbol,tf,1,0,MODE_SMA,Price,inx);
dblSumw += HalfLength;

for ( jnx = 1, knx = HalfLength; jnx <= HalfLength; jnx++, knx– )
{
dblSum += iMA(symbol,tf,1,0,MODE_SMA,Price,inx+1+jnx ) * knx;
dblSumw += knx;
}

return (dblSum/dblSumw);
}

//+——————————————————————+
//| CalculateCurrencySlopeStrength(int tf, int shift |
//+——————————————————————+
//
//

void CalculateCurrencySlopeStrength(int tf, int shift)
{
int i;

//
//
//
//
//

for ( i = 0; i < symbolCount; i++)
{
double slope = GetSlope(symbolNames[i], tf, shift);
currencyValues[GetCurrencyIndex(StringSubstr(symbolNames[i],0,3))] += slope;
currencyValues[GetCurrencyIndex(StringSubstr(symbolNames[i],3,3))] -= slope;
}
for (i = 0; i < CURRENCYCOUNT; i++) { currencyValues[i] /= currencyOccurrences[i]; }
}

//+——————————————————————+
//| ShowCurrencyTable() |
//+——————————————————————+
//
//

void ShowCurrencyTable()
{
int i;
int tempValue;
string objectName;
string showText;
color showColor;
int windex = WindowFind (shortName);

//
//
//
//
//

if (showOnlySymbolOnChart)
{
for (i = 0; i < 2; i++)
{
int index = GetCurrencyIndex(StringSubstr(Symbol(),3*i,3));
objectName = almostUniqueIndex + “_css_obj_column_currency_” + i;

if (ObjectFind (objectName) == -1)
{
if (ObjectCreate (objectName, OBJ_LABEL, windex, 0, 0))
{
ObjectSet (objectName, OBJPROP_CORNER,1);
ObjectSet (objectName, OBJPROP_XDISTANCE, horizontalShift * 0 + horizontalOffset + 70);
ObjectSet (objectName, OBJPROP_YDISTANCE, (verticalShift + 6) * i + verticalOffset – 18);
}
}
ObjectSetText (objectName, currencyNames[index], 14, nonPropFont, currencyColors[index]);

objectName = almostUniqueIndex + “_css_obj_column_value_” + i;
if (ObjectFind (objectName ) == -1)
{
if (ObjectCreate (objectName, OBJ_LABEL, windex, 0, 0))
{
ObjectSet (objectName, OBJPROP_CORNER, 1);
ObjectSet (objectName, OBJPROP_XDISTANCE, horizontalShift * 0 + horizontalOffset – 65 + 70);
ObjectSet (objectName, OBJPROP_YDISTANCE, (verticalShift + 6) * i + verticalOffset – 18);
}
}
showText = RightAlign(DoubleToStr(currencyValues[index], 2), 5);
ObjectSetText (objectName, showText, 14, nonPropFont, currencyColors[index]);
}
objectName = almostUniqueIndex + “_css_obj_column_currency_3”;
if (ObjectFind ( objectName ) == -1)
{
if (ObjectCreate (objectName, OBJ_LABEL, windex, 0, 0))
{
ObjectSet (objectName, OBJPROP_CORNER, 1);
ObjectSet (objectName, OBJPROP_XDISTANCE, horizontalShift * 0 + horizontalOffset + 5);
ObjectSet (objectName, OBJPROP_YDISTANCE, (verticalShift + 6) * 2 + verticalOffset – 10);
}
}
showText = “threshold = ” + DoubleToStr(differenceThreshold, 1);
ObjectSetText (objectName, showText, 8, nonPropFont, Yellow);
}
else
{

double tempCurrencyValues[CURRENCYCOUNT][3];

for (i = 0; i < CURRENCYCOUNT; i++)
{
tempCurrencyValues[i][0] = currencyValues[i];
tempCurrencyValues[i][1] = NormalizeDouble(currencyValuesPrior[i], 2);
tempCurrencyValues[i][2] = i;
}

ArraySort(tempCurrencyValues, WHOLE_ARRAY, 0, MODE_DESCEND);

int horizontalOffsetCross = 0;
for (i = 0; i < CURRENCYCOUNT; i++)
{
objectName = almostUniqueIndex + “_css_obj_column_currency_” + i;
if (ObjectFind (objectName ) == -1)
{
if (ObjectCreate (objectName, OBJ_LABEL, windex, 0, 0))
{
ObjectSet (objectName, OBJPROP_CORNER, 1);
ObjectSet (objectName, OBJPROP_XDISTANCE, horizontalShift * 0 + horizontalOffset + 150);
ObjectSet (objectName, OBJPROP_YDISTANCE, (verticalShift + 2) * i + verticalOffset – 18);
}
}
tempValue = tempCurrencyValues[i][2];
showText = currencyNames[tempValue];
ObjectSetText (objectName, showText, 12, nonPropFont, currencyColors[tempValue]);

objectName = almostUniqueIndex + “_css_obj_column_value_” + i;
if (ObjectFind ( objectName ) == -1)
{
if (ObjectCreate (objectName, OBJ_LABEL, windex, 0, 0))
{
ObjectSet (objectName, OBJPROP_CORNER, 1 );
ObjectSet (objectName, OBJPROP_XDISTANCE, horizontalShift * 0 + horizontalOffset – 55 + 150);
ObjectSet (objectName, OBJPROP_YDISTANCE, (verticalShift + 2) * i + verticalOffset – 18);
}
}
showText = RightAlign(DoubleToStr(tempCurrencyValues[i][0], 2), 5);
ObjectSetText (objectName, showText, 12, nonPropFont, currencyColors[tempValue]);

//
//
//
//
//

objectName = almostUniqueIndex + “_css_obj_column_cross_” + i;
if (showCrossAlerts && i < CURRENCYCOUNT-1 && NormalizeDouble(tempCurrencyValues[i][0],2) > NormalizeDouble(tempCurrencyValues[i+1][0],2)
&& tempCurrencyValues[i][1] < tempCurrencyValues[i+1][1])
{
showColor = colorStrongCross;
if (tempCurrencyValues[i][0] > 0.8 || tempCurrencyValues[i+1][0] < -0.8 ) { showColor = colorWeakCross; }
else if (tempCurrencyValues[i][0] > 0.4 || tempCurrencyValues[i+1][0] < -0.4 ) { showColor = colorNormalCross; }

//
//
//
//
//

DrawCell(windex,objectName,horizontalShift*0 + horizontalOffset + 88 + horizontalOffsetCross, (verticalShift + 2) * i + verticalOffset – 20, 1, 27, showColor );

if (horizontalOffsetCross == 0) { horizontalOffsetCross = -4; }
else { horizontalOffsetCross = 0; }
}
else { DeleteCell(objectName);
horizontalOffsetCross = 0; }
}
}
}

//+——————————————————————+
//| Right Align Text |
//+——————————————————————+
//
//

string RightAlign (string text, int length = 10, int trailing_spaces = 0)
{
string text_aligned = text;
for (int i = 0; i < length – StringLen (text) – trailing_spaces; i++)
{
text_aligned = ” ” + text_aligned;
}
return (text_aligned);
}

//+——————————————————————+
//| DrawCell(), credits go to Alexandre A. B. Borela |
//+——————————————————————+
//
//

void DrawCell (int nWindow, string nCellName, double nX, double nY, double nWidth, double nHeight, color nColor)
{
double iHeight, iWidth, iXSpace;
int iSquares, i;

if (nWidth > nHeight)
{
iSquares = MathCeil (nWidth / nHeight);
iHeight = MathRound((nHeight *100) / 77);
iWidth = MathRound((nWidth * 100) / 77);
iXSpace = iWidth / iSquares – ((iHeight / (9 – (nHeight / 100))) * 2);

for (i = 0; i < iSquares; i++)
{
ObjectCreate (nCellName + i, OBJ_LABEL, nWindow, 0, 0);
ObjectSetText (nCellName + i, CharToStr ( 110 ), iHeight, “Wingdings”, nColor);
ObjectSet (nCellName + i, OBJPROP_CORNER, 1);
ObjectSet (nCellName + i, OBJPROP_XDISTANCE, nX + iXSpace * i);
ObjectSet (nCellName + i, OBJPROP_YDISTANCE, nY);
ObjectSet (nCellName + i, OBJPROP_BACK, true);
}
}
else
{
iSquares = MathCeil (nHeight / nWidth);
iHeight = MathRound ((nHeight* 100) / 77);
iWidth = MathRound ((nWidth * 100) / 77);
iXSpace = iHeight / iSquares – ((iWidth / (9 – (nWidth / 100))) * 2);

for ( i = 0; i < iSquares; i++ )
{
ObjectCreate (nCellName + i, OBJ_LABEL, nWindow, 0, 0);
ObjectSetText (nCellName + i, CharToStr (110), iWidth, “Wingdings”, nColor);
ObjectSet (nCellName + i, OBJPROP_CORNER, 1);
ObjectSet (nCellName + i, OBJPROP_XDISTANCE, nX);
ObjectSet (nCellName + i, OBJPROP_YDISTANCE, nY + iXSpace * i);
ObjectSet (nCellName + i, OBJPROP_BACK, true);
}
}
}

//+——————————————————————+
//| DeleteCell() |
//+——————————————————————+
//
//

void DeleteCell(string name)
{
int square = 0;
while (ObjectFind(name + square) > -1)
{
ObjectDelete(name + square);
square++;
}
}

如果你对文件有了解,请帮助投票!

If you are familiar with the file, please help vote!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位投票人。

相关资源

暂无评论

暂无评论...
Ads Blocker Image Powered by Code Help Pro

检测到广告拦截程序!!!Ads Blocker Detected!!!

我们检测到您正在使用扩展来屏蔽广告。请通过禁用这些广告屏蔽程序或者把网站加入白名单来支持我们。

We have detected that you are using an extension to block advertisements. Please support us by disabling these advertising blocking programs or adding the website to the whitelist.